UIKit 以编程方式:嵌套导航的架构
UIKit Programmatically: Architecture For Nested Navigation
我在一个应用程序中有一堆屏幕:
Login screen (NavigationController - rootViewController)
|
Tab bar navigation controller
|
-- Dashboard Screen (NavigationController)
|
-- Details Screen (Child of dashboard)
|
-- Recipes Screen(Navigation Controller)
所以登录屏幕是一个 UINavigationController,登录后我推送一个 viewcontroller,它是一个 UITabBarController,有 2 个屏幕,每个屏幕都是一个 UINavigationController(仪表板屏幕和食谱屏幕)。
我不确定这是导航架构的正确方式,但它解决了在登录屏幕上不显示标签栏的问题,只有在登录后标签栏才会显示。
我在仪表板屏幕上有一个注销按钮,我正在尝试一直返回到登录屏幕,但它不起作用,因为登录屏幕不在导航堆栈中。
我怎样才能一直弹出到登录屏幕?我应该以不同的方式组织我的导航吗?
一个想法是:
您可以 present
第一个 UINavigationController
的 UITabBarController
而不是推送它
然后从您的仪表板屏幕,您可以dismiss
返回登录屏幕
我还概述了一些关于如何管理一些复杂导航流程的更多想法here
我在一个应用程序中有一堆屏幕:
Login screen (NavigationController - rootViewController)
|
Tab bar navigation controller
|
-- Dashboard Screen (NavigationController)
|
-- Details Screen (Child of dashboard)
|
-- Recipes Screen(Navigation Controller)
所以登录屏幕是一个 UINavigationController,登录后我推送一个 viewcontroller,它是一个 UITabBarController,有 2 个屏幕,每个屏幕都是一个 UINavigationController(仪表板屏幕和食谱屏幕)。
我不确定这是导航架构的正确方式,但它解决了在登录屏幕上不显示标签栏的问题,只有在登录后标签栏才会显示。
我在仪表板屏幕上有一个注销按钮,我正在尝试一直返回到登录屏幕,但它不起作用,因为登录屏幕不在导航堆栈中。 我怎样才能一直弹出到登录屏幕?我应该以不同的方式组织我的导航吗?
一个想法是:
您可以
present
第一个UINavigationController
的UITabBarController
而不是推送它然后从您的仪表板屏幕,您可以
dismiss
返回登录屏幕
我还概述了一些关于如何管理一些复杂导航流程的更多想法here