后续视图的 NavigationTab 不起作用

NavigationTab for subsequent Views not working

我有一个 LoginView,在用户身份验证后,用户将被发送到相应的 homeView。转换以编程方式进行,没有 segue。然后,根据用户类型(比方说,超级用户和测试员),用户可以从他的 homeView 浏览。两个 homeView 前面都有一个 NavigationController。


                 NavigationController -Segue->  SuperView  -Segue-> SecondView 
->LoginView                                                              |
                 NavigationController -Segue->      HomeView    <-Segue -
                                                       |
                                                        -Segue->  View4 -Segue-> View5 ...

Here is the storyboard flow

还有问题:在模拟器中,登录后,第一个视图看起来不错,但是接下来的所有视图都没有导航栏。然而,在故事板中,一切看起来都很好。

转换如下:

func transitionToSuperHome() {

        let supervisorViewController = storyboard?.instantiateViewController(identifier: "superVC") as? SuperuserViewController

        view.window?.rootViewController = superuserViewController
        view.window?.makeKeyAndVisible()
    }

func transitionToHome() {

       let homeViewController = storyboard?.instantiateViewController(identifier: "homeVC") as? HomeViewController
        view.window?.rootViewController = homeViewController
        view.window?.makeKeyAndVisible()
    }

This is how the second (and all subsequent) view looks like

知道是什么导致了这个问题吗?

在我看来,您正在将根视图控制器设置为分离状态。一个简单的修复可能是将根视图控制器嵌入导航控制器中以避免分离状态。这也是为什么您的屏幕截图似乎是模态显示而不是在导航堆栈中显示的原因。

window?.rootViewController = UINavigationController(rootViewController: homeViewController)