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

时间:2016-08-26 02:10:57

标签: iphone swift xcode login storyboard

我是Swift&的新手。故事板。我正在构建一个应用程序,需要让用户在登录成功后登录。 因此,在第一次用户打开应用程序时,我将显示Login ViewController,并在用户登录后,该应用程序显示Home ViewController。

对于Objective-C和xib,我只是将用户登录数据保存到数据库,每次用户打开应用程序时,我都会检查AppDelegate中是否存在用户数据,如果存在,我将显示HomeVC。 xib否则我会显示LoginVC.xib。这是正确的方法吗?

如何使用Storyboard执行此操作?

谢谢

2 个答案:

答案 0 :(得分:5)

您可以通过取消选中第一个视图控制器like so中的“是初始视图控制器”选项以编程方式设置初始视图控制器, 或者只是删除指向第一个视图控制器的箭头。 然后将您想要作为初始视图控制器的所有视图控制器分配给不同的故事板ID Like that

然后在应用程序中手动将相应的视图控制器设置为初始视图控制器: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
}

答案 1 :(得分:0)

如果你正在使用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
    }