NavigationTab для последующих видов не работает - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть LoginView, где после аутентификации пользователя пользователь отправляется в соответствующий homeView. Переход сделан программно без перехода. Затем, в зависимости от типа пользователя (скажем, суперпользователь и тестер), пользователь может просматривать из своего homeView. Оба homeViews предшествуют NavigationController.


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

Вот поток раскадровки

И проблема: в симуляторе, после входа в систему, первое представление выглядит отлично, но все следующие виды не имеют панели навигации. В раскадровке, однако, все выглядит хорошо.

Переход осуществляется следующим образом:

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()
    }

Вот так второй (и все последующие) вид выглядит как

Есть идеи, что может вызвать проблему?

1 Ответ

0 голосов
/ 21 февраля 2020

Мне кажется, вы устанавливаете контроллер вида root в отключенное состояние. Простое исправление может заключаться в том, чтобы встроить контроллер вида root в контроллер навигации, чтобы избежать отсоединенного состояния. По этой же причине ваши скриншоты представляются модально, а не в стеке навигации.

window?.rootViewController = UINavigationController(rootViewController: homeViewController)
...