Иерархия ViewController теряется - PullRequest
0 голосов
/ 15 сентября 2011

У меня есть иерархия представления, которая настраивается (программно) следующим образом:

Window.root = TabBarController -> UINavigationControllers -> UIViewControllers

Я полагаю, что это довольно стандартно.Вот моя проблема:

Я на вкладке A. Я хочу перейти на вкладку B и вызвать метод visibleViewController на вкладке B.

// View Changes OK
[AppDelegate.tabBarController setSelectedIndex:tabB];

// nav  = 0x387ABF i.e. Valid Address
UINavigationController *nav = (UINavigationController*)[AppDelegate.tabBarController selectedViewController];

// The problem:
nav.viewControllers; // this is nil
nav.topViewController; // as is this
nav.visibleViewContorller; // this too.

Даже если я поставлювызовы nav.viewControllers в отдельном методе, который вызывается из основного потока, я все еще получаю 0x0 / nil.

Что я делаю не так?

Продолжениевопрос: как я могу передавать информацию от одного ViewController к другому при смене вкладок?(Если я не могу вызывать методы на VC от tabA до tabB)

У меня есть ощущение, что это связано с моим вопросом здесь.

1 Ответ

0 голосов
/ 15 сентября 2011

Вы должны хранить информацию в обычном месте, либо в виде отдельного файла, либо, если вы новичок, просто создайте класс и передайте его.

sharedDataObject = [[MySharedDataObject alloc] init];

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