tabbarcontroller 以及保存退出程序前對tabbar所做的操做,以及移動tabbar的順序數組
這個直接在appdelegate中進行操做app
// // AppDelegate.m // UI1.7 // // Created by qianfeng on 13-7-9. // Copyright (c) 2013年 __MyCompanyName__. All rights reserved. // #import "AppDelegate.h" #import "RootViewController.h" #import "ViewController1.h" #import "ViewController2.h" #import "ViewController3.h" #import "ViewController4.h" #import "ViewController5.h" @implementation AppDelegate @synthesize window = _window; - (void)dealloc { [_window release]; [super dealloc]; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; // Override point for customization after application launch. RootViewController *rootVC = [[RootViewController alloc]init]; UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:rootVC]; [nav.navigationBar setTintColor:[UIColor colorWithRed:0.6 green:0.4 blue:0.91 alpha:1.0]]; ViewController1 *view1 = [[ViewController1 alloc]init]; ViewController2 *view2 = [[ViewController2 alloc]init]; ViewController3 *view3 = [[[ViewController3 alloc]init]autorelease]; ViewController4 *view4 = [[[ViewController4 alloc]init]autorelease]; ViewController5 *view5 = [[[ViewController5 alloc]init]autorelease]; // UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:rootVC]; UITabBarController *tabBarCtr = [[UITabBarController alloc]init]; tabBarCtr.viewControllers = [NSArray arrayWithObjects:nav,view1,view2,view3,view4,view5, nil]; tabBarCtr.delegate = self; //取順序 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *lastSortArray = [NSArray arrayWithArray:[defaults objectForKey:@"Value"]]; NSLog(@"%@",lastSortArray); //存儲順序變幻後的viewcontrollers NSMutableArray *arr = [[NSMutableArray alloc]init]; if (lastSortArray != NULL) { NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:nav,@"0",view1,@"1",view2,@"2",view3,@"3",view4,@"4",view5,@"5",nil]; //遍歷 for (NSString *t in lastSortArray) { //取每個視圖控制器 UIViewController *vc = [dic objectForKey:t]; [arr addObject:vc]; } //更新tabbar視圖控制器數組 tabBarCtr.viewControllers = arr; } //讀取上次用戶瀏覽的頁面 int n = [defaults integerForKey:@"lastNumber"]; //更新如下 tabBarCtr.selectedIndex = n; self.window.rootViewController = tabBarCtr; [view1 release]; [view2 release]; [rootVC release]; [tabBarCtr release]; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; return YES; } -(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{ // // if (viewController.tabBarItem.tag == 1) { // return NO; // }else{ // return YES; // } return YES; } -(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{ // NSLog(@"%d",tabBarController.selectedIndex); NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; //保存最後一頁的編碼 [defaults setInteger:tabBarController.selectedIndex forKey:@"lastNumber"]; //寫入 [defaults synchronize]; } -(void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed{ //NSLog(@"%@",tabBarController.viewControllers); //遍歷viewcontrollers NSMutableArray *ar = [[NSMutableArray alloc]init]; for (UIViewController *v in viewControllers) { //獲取tag值 int tag = v.tabBarItem.tag; //將tag轉化微字符串 NSString *tagStr = [NSString stringWithFormat:@"%d",tag]; //添加到數組 [ar addObject:tagStr]; } NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:ar forKey:@"Value"]; [defaults synchronize]; // NSLog(@"=%@",ar); [ar release]; } @end