繁体   English   中英

iOS在2个导航控制器之间切换

[英]iOS Switch between 2 Navigation controller

在我的应用程序中,如果用户未登录,则会显示嵌入在导航控制器中的登录控制器。 用户登录后,应用程序应切换到其他导航控制器以显示应用程序。

当用户登录时,如何从一个导航控制器切换到另一个导航控制器。

谢谢

在此输入图像描述

我正在检查用户是否登录了应用程序代理:

 // 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
    }

解决方案:看起来很有效
当用户按下logIn按钮时:

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

解决方案1

一种解决方案是仅使用单个导航控制器。 当用户登录时,您将弹出用于登录的所有视图控制器并将主视图控制器推送到堆栈上。

解决方案2

或者,您可以在登录资料的基础上以模式方式呈现新的导航控制器,主控制器为其根。 它将简单地呈现在它之上。

解决方案3

您还可以考虑先使用主视图控制器创建导航控制器,然后在其上显示登录导航控制器。 然后,当用户登录时,您只会关闭显示主视图控制器的登录导航控制器。

设置导航控制器故事板ID

    let navigationController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("SecondNavigationController")
    self.presentViewController(navigationController, animated: true, completion: nil)

希望这可以帮助。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM