Как получить доступ к viewController через tabBar и containerView? - PullRequest
0 голосов
/ 13 февраля 2020

у меня есть viewController с двумя containers; один, в который вставляется пустой viewController (за исключением некоторого текста), а другой, который встраивает viewController с данными. Последний встроен в пользовательский navigationController. Существует также tabBar, который может перейти к этой container структуре. Это выглядит так (обратите внимание, что tabBar здесь нельзя увидеть, поскольку он реализован программно):

enter image description here

Я хотел бы получить доступ к root viewController программно, то есть с tableView. Я пытался:

self.tabBar.window.rootViewController.childViewControllers[2].navigationController.childViewControllers[0]

Но он возвращает ноль. Первая часть: self.tabBar.window.rootViewController.childViewControllers[2].description возвращает правильный viewController выбранного tabBar элемента, так что, я думаю, я на правильном пути.

Я вспомнил, что использую пользовательский navigationController класс и, возможно, это то, что вызывает проблему здесь. Запись self.navigationController возвращает ноль. Так что я думаю, что мне нужно получить доступ к пользовательскому. Попробовал так:

MyCustomController *nav = [MyCustomController alloc] init];

и это

UINavigationController *nav = [MyCustomController alloc] init];

Но я не могу использовать это здесь

self.tabBar.window.rootViewController.childViewControllers[2].nav.childViewControllers[0];

, как я получаю ошибку

Свойство 'nav' не найдено для объекта типа '__kindof UIViewController *'

Я на правильном пути? Что я делаю неправильно? Есть ли более простой способ получить доступ к root viewController из navigationController?

...