Как переключаться между навигационными контроллерами?

ситуация:
У меня есть проект Xcode, основанный на шаблоне "навигационное приложение". Это означает, что у меня есть один UINavigationController, который управляет UIViewController.

что я хочу сделать:
Что я хочу сделать, это добавить еще один UINavigationController в мой проект - и иметь возможность переключаться между ними. (Я хочу сделать это, чтобы освободить место для некоторого отдельного несвязанного контента, чтобы у него не было кнопка "Назад", указывающая на контроллер корневого представления.)

вопрос:
Как добавить еще один UINavigationController в мой проект и переключиться между двумя UINavigationController?

1 ответов


самый распространенный и естественный iPhone OS, способ сделать это, чтобы добавить UITabBarController для приложения. Xcode шаблона Панель Вкладок Приложения направит вас в правильном направлении о том, как его использовать.

но...

Если вам не нравится иметь панель вкладок в вашем приложении и хотите переключаться между разными UINavigationController экземпляры (или UIViewController Если на то пошло), вы можете сделать что-то подобное.

сначала вам нужно создать свой UINavigationController экземпляры в соответствующем месте (например, новый контроллер представления или делегат приложения, если вы хотите найти простой выход). Затем вы можете переключаться между контроллерами, просто меняя вид навигационного контроллера, который должен быть видимым.

пример в делегате приложения, "firstNavigationController" и "secondNavigationController" являются UINavigationController переменные экземпляра:

- (void)showFirstNavigationController {
    [secondNavigationController.view removeFromSuperview];
    [self.window addSubview:firstNavigationController.view];
}

это будет просто отображать первый вместо второго Навигационный Контроллер. Обратите внимание, что этот пример очень простой. Я не учел, что вы должны правильно обращаться с методами viewWillAppear:, viewDidAppear: и так далее.