Работа с 2 раскадровкой с навигационным контроллером и контроллером панели вкладок - PullRequest
0 голосов
/ 22 ноября 2018

Я создаю новое приложение для iOS с 2 раскадровками.первый для аутентификации пользователя, а второй для самого приложения.

Я использую ссылку на раскадровку для переключения между ними.

И я использую объект окна в делегате приложения длявыяснить, какой viewController или раскадровка отображается.

Теперь проблема в объекте окна.Чтобы упростить задачу -


контроллер представления входа в storyboard1 - приложение запускает экран

showen - signinviewcontroller

appdelegate -> window ->uinavigationcontroller (rootviewcontroller) -> signinviewcontroller (topViewController & visibleViewController контроллера навигации)

все в порядке

вход пользователя - контроллер панели вкладок в раскадровке 2

показ экрана - controlviewcontroller (панель управления viewcontroller)

appdelegate -> window -> uinavigationcontroller (rootviewcontroller) -> панель вкладок (visibleviewcontroller) -> profileviewcontroller (вкладка visibleViewController с видимыми панелями) * app28)

1029-> window -> uinavigationcontroller (rootviewcontroller) -> signinviewcontroller (top viewcontroller)

почему signinviewcontroller является контроллером topview?

почему TabBarController не является корневым контроллером оконного объекта?

возврат к раскадровке 1 для входа в viewcontroller

показанный экран - signinviewcontroller

appDelegate -> window -> uinavigationcontroller (rootviewcontroller) -> панель вкладок (visibleviewcontroller) -> profileviewcontroller (tabbar visibleViewController)

appdelegate -> window -> uinavigationcontroller (rootviewcontroller) -> signinviewcontroller (top viewcontroller)

почему TabBarController является видимым контроллеромДаже если показан контроллер представления входа из раскадровки 1?


важно отметить, что ссылка на раскадровку ссылается на родительский контроллер viewControllers

что означает ссылку на раскадровку от раскадровки 1 до 2, которую я подключил к самому навигационному контроллеру - и в viewController -

self.navigationController?.performSegue(withIdentifier: "AuthToChatSegue", sender: nil)

и от раскадровки 2 к 1 -

tabBarController?.performSegue(withIdentifier: "ChatToAuth", sender: nil)

storybopard 1

storyboard 2

...