切换后视图控制器login后..最佳实践

我已经成功地设置了我的应用程序stream程逻辑,除了login以外,一切似乎都正常工作。 我想保持用户login,所以当应用程序重新打开configuration文件屏幕是第一个显示。 现在我有代码..

override func viewDidAppear(animated: Bool) { var currentUser = PFUser.currentUser() println(currentUser.objectId as String) if currentUser != nil { self.performSegueWithIdentifier("loginsuccess", sender: nil) } else { // Show the signup or login screen } } 

它的工作,但似乎太慢,login屏幕闪烁一秒钟。 我find了一个更干净的方式来做到这一点,但没有find多less。

在这种stream程中,我通常使用window的rootViewController来玩游戏。 例如

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; if ([UserDefaultsSingleTon IsUserLogin]) { [self SetRootToHomeView]; } else { [self SetRootToLoginView]; } return YES; } -(void)SetRootToLoginView { self.loginController = [[LoginController alloc] initWithNibName:@"LoginController" bundle:nil]; self.window.rootViewController = self.loginController; [self.window makeKeyAndVisible]; } -(void)SetRootToHomeView { self.homeController = [[HomeController alloc] initWithNibName:@"HomeController" bundle:nil]; self.window.rootViewController = self.homeController; [self.window makeKeyAndVisible]; } 

然后当login成功或注销时,您可以在两个控制器之间切换。 通过调用这些方法与appdelegate引用。