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