ios--appDelegate切换根视图rootViewController(最常用的场合是首次启动跳至导航ViewController)
转载自 http://blog.csdn.net/wanggsx918/article/details/25215183
1、在appDelegate中添加一个切换的方法switchRootViewController:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) { //第一次启动导航页 NSLog(@"wanggsx:第一次启动"); ViewController *appStartController = [[ViewController alloc] init]; self.window.rootViewController = appStartController; [self.window addSubview:appStartController.view]; } else { //打开选择场地界面 [self switchRootViewController]; } [self.window makeKeyAndVisible]; return YES; } //切换RootViewController - (void)switchRootViewController { self.window.rootViewController = nil; ChooseModeViewController* crBrandsViewController= [[ChooseModeViewController alloc] init]; UINavigationController *brandsNavigationController = [self customControllerWithRootViewController:crBrandsViewController]; self.viewController = brandsNavigationController; self.window.rootViewController = self.viewController; }
2、在需要切换根视图的ViewController中调用appDelegate中的方法:
- (IBAction)gotoMainView:(id)sender { [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"firstLaunch"]; [(AppDelegate*)[UIApplication sharedApplication].delegate switchRootViewController]; }