iPhone: как я могу перейти на главную страницу в навигационном контроллере?

#iphone #uinavigationcontroller

#iPhone #uinavigationcontroller

Вопрос:

как я могу перейти на главную страницу в навигационном контроллере?

я знаю, что если я хочу перейти на корневую страницу, я могу использовать

 [self.navigationController popToRootViewControllerAnimated:YES]; 
  

но я хочу перейти к двум страницам. не корневая страница, а предыдущая страница.

что я могу для этого сделать?

Ответ №1:

Если вы знаете ViewController в стеке view controller панели навигации, вы можете использовать:

 [self.navigationController popToViewController:viewControllerToShow animated:YES]; 
  

popToViewController: анимированный:

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

Ответ №2:

Да, вы можете использовать

popToViewController: анимированный:

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

В дополнение к приведенным выше ответам, если у вас не может быть экземпляра контроллера представления, вы можете сделать это по индексу контроллера представления в стеке.

 NSArray *array = [self.navigationController viewControllers];

[self.navigationController popToViewController:[array objectAtIndex:2] animated:YES];
  

Ответ №3:

Если у вас есть ссылка на упомянутый ViewController *, вы можете использовать;

 [self.navigationController popToViewController:(UIViewController *) animated:(BOOL)];
  

Таким образом, он возвращается назад, пока не достигнет заданного ViewController.

Другими обходными путями могут быть переход к root, а затем переход на главную страницу (если это уровень 1, конечно) без анимации. Или вы можете открывать ViewControllers один за другим, пока не окажетесь там… Все зависит от вашей структуры.

Однако будьте осторожны, если у вас есть ссылка на упомянутый ViewController, вам необходимо сохранить / освободить его должным образом.

Я надеюсь, что это поможет