Как получить доступ к View Controller из контроллера панели вкладок? - PullRequest
5 голосов
/ 16 августа 2011

У меня есть контроллер панели вкладок, и каждая вкладка состоит из контроллера навигации.

Как получить доступ к определенному контроллеру представления в контроллере навигации на вкладке, чтобы получить доступ к свойству, специфичному для представленияcontroller?

Я попробовал следующий код:

//Get the navigation controller of the 3rd tab
self.tabController.selectedViewController 
= [self.tabController.viewControllers objectAtIndex:2];

//Attempt to retrieve the viewcontroller I want from the tabcontroller
SomeViewController *svc = (SomeViewController *)self.tabController.selectedViewController;

//Attempting to access a BOOLEAN property in svc viewcontroller
svc.someProperty = YES;

Приведенный выше код не удался, потому что кажется, что "self.tabController.selectedViewController" возвращает мне контроллер навигации.Как я могу расширить код, чтобы получить доступ к svc.someProperty?

Ответы [ 3 ]

6 голосов
/ 16 августа 2011

Вы можете использовать -topViewController для получения контроллера вида от контроллера навигации (или -visibleViewController, если вы используете контроллеры модального вида).

4 голосов
/ 16 августа 2011

Если self.tabController.selectedViewController является вашим контроллером вида навигации, то вы можете получить доступ к текущему видимому контроллеру, используя:

visibleViewController

и контроллер вида сверху, используя:

topViewController

Если это не позволяет вам перейти к SomeViewController, вы можете перебрать список контроллеров, помещенных в стек контроллера навигации:

viewControllers

1 голос
/ 16 августа 2011

Поскольку контроллер представления является подпредставлением возвращенного UINavigationController (SVC), вы можете просто отправить его следующим методом [svc topViewController];.Это должно вернуть вам контроллер представления, и тогда вы сможете получить доступ к свойству.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...