UIViewController Hierarchy - PullRequest
       3

UIViewController Hierarchy

0 голосов
/ 28 декабря 2011

Если имеется несколько видов - скажем, вид 1, вид 2, вид 3, вид 4 и вид 5, и они находятся в стеке навигации, причем вид 5 является текущим видом (который находится сверху), Как я могу получить доступметод, написанный в view3 в контроллере для view5?Это делается как создание экземпляра контроллера view3 в контроллере view5 и затем вызов метода?Но это не идеальный подход, который я считаю.Каков наилучший подход для этого сценария?

Ответы [ 3 ]

0 голосов
/ 28 декабря 2011
    NSMutableArray *controllers = [[self.navigationController.viewControllers mutableCopy] autorelease];

ABCController *controller = [controllers objectAtIndex:2]; //ABCController is the name of conroller class
[controller methodName] ;

этот подход должен работать

0 голосов
/ 28 декабря 2011

Я предлагаю создать базовый класс, из которого будут производиться view1, view2, ... view 5. Базовый класс будет содержать этот метод, что сделает его доступным для всех классов (view1, view2, ...)

0 голосов
/ 28 декабря 2011

вы можете получить к нему доступ, получив доступ к стеку контроллера навигации-

NSMutableArray *activeControllerArray = [self.navigationController.viewControllers mutableCopy];

Controller3 myController;
For(int i = 0, i <[activeControllerArray  count], i++) {
    if([[activeViewController objectAtIndex:i] isKindOfClass:[Controller3 class]) {
        myController = [activeViewController objectAtIndex:i];
     }
}

Теперь вы можете выполнять нужные действия.

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