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