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

Switching View Controller After Login..Best Practise

我已经成功设置了我的应用程序流逻辑,除了登录之外,一切似乎都运行良好。我想让用户保持登录状态,以便在重新打开应用程序时首先显示个人资料屏幕。现在我有代码..

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
    }
}

可以用,但似乎太慢了,登录屏幕闪烁了一秒钟。我一直在寻找一种更简洁的方法来执行此操作,但没有找到太多。

这种流程我一般都是玩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];
}

然后当登录成功或注销时,您可以在Either Controllers之间切换。通过使用 appdelegate 引用调用这些方法。