Доступ к UITabBarController, встроенному в UIViewController - PullRequest
0 голосов
/ 23 марта 2019

У меня есть UITabBarController, встроенный в UIViewController.Я пытаюсь получить доступ к экземпляру UITabBarController из родительского UIViewController.

vc.children имеет тип возвращаемого значения [UIViewController], поэтому UITabBarController не отображается.

vc.tabBarController isноль, потому что представление не встроено в TabBarController.Моя установка противоположна.

Есть идеи?

Моя раскадровка: storyboard

Ответы [ 2 ]

0 голосов
/ 23 марта 2019

Мне нужно было переместиться window?.rootViewController = viewController до vc.children.

0 голосов
/ 23 марта 2019

Самое быстрое решение:
vc.children.compactMap({$0 as? UITabBarController}).first.

Лучшее решение:
Выберите Embed Segue в раскадровке и дайте идентификатор (скажем, «containerEmbedSegue». Далее в вашем vc:

var tabBarVC: UITabBarController?

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "containerEmbedSegue" {
        self.tabBarVC = segue.destination as? UITabBarController
    }
}
...