【发布时间】:2015-11-11 22:49:15
【问题描述】:
在我的应用程序中,如果用户没有登录,它会显示一个嵌入在导航控制器中的登录控制器。 当用户登录时,应用应该切换到另一个导航控制器来显示应用。
当用户登录时,如何从一个导航控制器切换到另一个导航控制器。 ?
谢谢
我正在检查用户是否登录应用委托:
// Check if user is log
let currentUser = PFUser.currentUser()
if currentUser != nil {
// Do stuff with the user
} else {
// Show the signup or login screen
let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let nav = mainStoryboardIpad.instantiateViewControllerWithIdentifier("LogInController") as! UINavigationController
self.window?.rootViewController = nav
}
解决方案:看起来可行
当用户按下登录按钮时:
let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let nav = mainStoryboardIpad.instantiateViewControllerWithIdentifier("MainNavController") as! UINavigationController
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.window?.rootViewController = nav
【问题讨论】:
-
你在哪里决定用户是否登录?应用委托?查看加载了吗?
-
在应用委托中是。代码已编辑。
-
你也可以换成其他的导航控制器,使用storyboard ID!!!
-
当用户通过按下日志按钮登录时,我无法制作 self.window.rootViewController 因为我现在不在应用程序委托中,而是在 logInViewController 中
-
您可以在视图控制器的任何位置使用应用程序委托。只需将应用委托的引用传递给您的视图控制器!!!!
标签: ios swift uinavigationcontroller