UINavigationController
имеет свойство viewControllers
, которое представляет собой NSArray
, в котором хранится весь стек, который был передан в контроллер навигации. В этом массиве вы можете проверить контроллер вида, если он там используется, -вы проверяете вот так -
Level4ViewController *lvc;
for(UIView *view in self.navigationController.viewControllers)
{
if([view isKindOfClass:[Level4ViewController class]])
{
lvc = view;
}
}
и если вы уже знаете, в каком индексе находится ваш viewcontroller, вы можете получить его из этого индекса как -
Level4ViewController *lvc = [self.navigationController.viewControllers objectAtIndex:1];
update -
Level4ViewController *controller;
for(UIView *view in self.navigationController.viewControllers)
{
if([view isKindOfClass:[Level4ViewController class]])
{
controller = view;
}
}
if(controller == nil)
{
controller = [[Level4ViewController alloc] initWithNibName:@"ModuleViewController" bundle:nil];
}
[[detailViewController navigationController] pushViewController:controller animated:YES];
[controller release], controller = nil;