Swift:在SplitViewController之前有一个登录屏幕

时间:2015-07-20 16:38:53

标签: ios swift ios9

我知道不允许这样做,UISplitViewController应该始终是根控制器。

如何在splitViewController之前设置登录屏幕?这似乎是一个非常普遍的问题 我是iOS的新手,所以任何例子都会非常感激。
尝试更新MasterViewController的viewDidLoad():

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
        if (!appDelegate.loggedIn) {
            // display the login form
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            let login = storyboard.instantiateViewControllerWithIdentifier("LoginVC") as UIViewController
            self.presentViewController(login, animated: false, completion: { () -> Void in
                // user logged in and is valid now
                //self.updateDisplay()
            })
        } else {
            //updateDisplay()
        }

但它给我一个警告:arning: Attempt to present <LoginViewController: 0x7f8ef8f12c80> on <SideBarViewController: 0x7f8ef8d9faf0> whose view is not in the window hierarchy!

1 个答案:

答案 0 :(得分:1)

使初始视图控制器成为拆分视图控制器。在其self.navigationController?.navigationBar.translucent = false self.navigationController?.navigationBar.barStyle = .Black self.navigationController?.navigationBar.barTintColor = UIColor.blueColor() viewDidLoad方法或其他任何有意义的方法中,检查用户是否已登录。如果用户未登录,请以模态方式向您的登录视图控制器发送动画。这一切都将在用户不注意的情况下发生,并允许您想要的故事板设置。