(Swift) 在主 UINavigationController 内嵌套的 UINavigationController 和 UITabController 之间切换

(Swift) Switching between UINavigationController and UITabController nested within Main UINavigationController

通过storyboard,应用程序入口点是一个单独的UINavigationController,它对用户身份验证做一些逻辑,首先确定是推送主页视图的嵌入式UITabBarController还是呈现Sign-In/Sign-Up 视图的嵌入式 UINavigationController - 我对此没意见。

我遇到的困难是如何在 Sign-In/-Sign 向上视图的嵌入式 sign-in/sign-up 和主视图的嵌入式 Sign-In/-Sign 之间正确地来回直接转换=13=] 在注销时。我认为冲突在于在进入 push/present 时处理原始 rootviewcontroller 上述视图和嵌套 UINavigationController 在 Sign-In/Sign-Up 视图中的“rootviewcontroller 关系” .

我不知道如何从原来的 rootviewcontroller push/present 进行这些直接转换。如果有人可以帮助澄清,是否使用 appdelegate 等,将不胜感激!

Storyboard UI Flow

有几种方法可以处理这个问题,但一般来说,我的方法是简单地通过一个主导航控制器来处理这个问题,该控制器将在其中保留整个登录/主菜单控制器阵列,并且简单地根据用户是登录还是注销,在视图控制器中添加或删除菜单(仅显示 [signin] 或 [signin, mainmenu] 作为导航控制器上的视图控制器)。

最后,根据标签栏的逻辑类型,通常我会为每个标签栏项目嵌入一个导航控制器。

在这里看一下草图: