【问题标题】:How do I start a flow with a new navigation controller stack?如何使用新的导航控制器堆栈启动流程?
【发布时间】:2019-06-05 09:49:12
【问题描述】:

在我的应用程序中,我从登录流程开始,登录完成后,它将导航到仪表板。我正在尝试重置导航堆栈,以便当我在仪表板中时,我不会返回登录屏幕。我也许可以通过在仪表板中隐藏后退按钮来实现这一点,但我相信重置堆栈是一种更合适的方式,但我该怎么做呢?

【问题讨论】:

    标签: ios swift navigation uinavigationcontroller


    【解决方案1】:

    将根视图控制器更改为新的 UINavigationController。

    如果您必须检查用户是否已经登录,请在找到登录会话后在 AppDelegate 中执行此操作:

    self.window?.rootViewController = UINavigationController(rootViewController: dashboardVC)
    

    如果您想在登录成功后导航到仪表板:

    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    appDelegate.window?.rootViewController = UINavigationController(rootViewController: dashboardVC)
    

    此代码从一个新的导航堆栈启动您的 viewController,其中 DashboardViewController 是堆栈的根 viewController。

    【讨论】:

    • 如果我错了,请纠正我,我不是要重置 rootViewController,当应用程序启动时,它仍然应该通过登录流程。通过重置窗口rootViewController,当应用启动时,会从Dashboard开始对吧?
    • 由于您的应用主界面未更改,因此重新启动应用后它不会与仪表板一起启动。
    • 我什么时候应该在仪表板或登录中设置这个?
    • 第二种方法,如果您想在登录成功后执行此操作。
    • 它们是两种不同的方法吗?我似乎无法设置 self.window?在我的 ViewController 中。
    猜你喜欢
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    相关资源
    最近更新 更多