0

я имею следующую структуру навигации контроллераUINavigationController вид изменения ребенка с другим

RootViewController 
     | 
     |--FirstViewController 
     | 
     |--SecondViewController 

Как я могу перейти непосредственно от FirstViewController к SecondViewController, не показывая RootViewController. Я хотел бы поставить кнопку на навигационную панель FirstViewController, например «Перейти к SecondViewController».

ответ

1

В методе действия соответствующей кнопки, в инициализации SecondViewController, а затем собрать NSArray, состоящий из двух элементов: RootViewController и вновь инициализируется SecondViewController (в указанном порядке, т.е. Root с индексом 0 и Second с индексом 1).

Затем вызовите метод NavigationController setViewControllers:animated: и передайте массив контроллеров представлений в качестве первого аргумента. Запомните releaseSecondViewController после вызова этого метода или autorelease после инициализации, чтобы избежать утечки памяти.

Чтобы уточнить, это приведет к тому, что навигатор NavigationController освободит FirstViewController.

Пример:

- (void) goToSecondViewController 
{ 
    RootViewController *root = [[self.navigationController viewControllers] objectAtIndex:0]; 
    SecondViewController *second = [[[SecondViewController alloc] init] autorelease]; 
    NSArray *controllersArray = [NSArray arrayWithObjects: root, second, nil]; 

    [self.navigationController setViewControllers:controllersArray animated:YES]; 
} 

Ссылка: UINavigationController Class Reference

+0

ли это ток удержания на сегодняшний день? (июнь 2012 г.) Я не спрашиваю, работает ли это или нет, но если это не осуждается текущим SDK. – Julian

 Смежные вопросы

  • Нет связанных вопросов^_^