iOS Swift Storyboard如何在登录后和登录前显示视图



我是Swift的新手& &;故事板。我正在建立一个应用程序,需要保持用户登录后,他们登录成功。在用户第一次打开app时,我会显示Login ViewController,在用户登录后,app会显示Home ViewController。

对于Objective-C和xib,我只是将用户登录数据保存到Database,每次用户打开app时,我会检查用户数据是否存在于AppDelegate中,如果存在,我会显示HomeVC。否则我显示LoginVC.xib。这样做正确吗?

我如何使用Storyboard做到这一点?

谢谢

你可以通过取消勾选第一个视图控制器中的"Is initial view controller"选项,以编程方式设置初始视图控制器,如下所示:或者删除指向第一个视图控制器的箭头。然后给所有你想要作为初始视图控制器的视图控制器一个不同的storyboard ID,像这样

然后在AppDelegate类中的didFinishLaunchingWithOptions方法中手动设置适当的视图控制器为初始视图控制器:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.
    window = UIWindow(frame: UIScreen.mainScreen().bounds)
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    window?.rootViewController = storyboard.instantiateViewControllerWithIdentifier((isUserLoggedIn ? "MainVC" : "LoginVC"))
    window?.makeKeyAndVisible()
    return true
}

如果你正在使用Parse,你可以试试这个

if (PFUser.currentUser() == nil) {
        dispatch_async(dispatch_get_main_queue(), { () -> Void in
            let viewController: UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("Login")
            self.presentViewController(viewController, animated: true, completion: nil)
        })
    } else {
        //Your main viewController
    }

最新更新