Итак, у меня есть утверждение if, которое имеет 2 результата: rootViewController
становится loginViewController
или mainSearchViewController
. Раскадровка для mainSearchViewController
имеет встроенные TabViewController
и NavigationViewController
. Однако, установив контроллер вида root, я теряю доступ и к TabViewController
, и к NavigationViewController
, и только к активному mainSearchViewController
. Вот мой код:
func setRootViewController() {
if Auth.auth().currentUser != nil {
let mainSearchViewController = storyboard?.instantiateViewController(withIdentifier: Constants.Storyboard.mainSearchViewController)
view.window?.rootViewController = mainSearchViewController
view.window?.makeKeyAndVisible()
} else {
let loginSearchViewController = storyboard?.instantiateViewController(withIdentifier: Constants.Storyboard.loginViewController)
view.window?.rootViewController = loginSearchViewController
view.window?.makeKeyAndVisible()
Потерять доступ к контроллеру панели вкладок и навигационному контроллеру, когда контроллер представления root отображает вид на очень верно
Редактировать: я пытался установить rootViewController
для контроллера вкладок, это позволяет мне использовать функциональность вкладок, но у меня все еще нет доступа к Nav Controller. То же самое касается Nav Controller, он работает, когда он является root контроллером представления, но нет функциональности Tab Controller
Редактировать 2: в viewDidLoad()
mainSearchViewController
navigationController? .IsNavigationBarHidden = false `и у меня есть root контроллер представления в качестве контроллера панели вкладок. Я могу получить доступ к значкам вкладок и увидеть панель навигации, но функция навигации при нажатии на ячейку не работает.