как вытащить контроллер из стека навигации без использования панели навигации - PullRequest
1 голос
/ 14 июля 2010

Я пытаюсь реализовать контроллер навигации с некоторыми иерархическими представлениями.Я хочу использовать обычный UIViewController для представления выбора для детализации, я не хочу использовать панель навигации - я хочу иметь свои собственные, настраиваемые кнопки для возврата обратно на уровень.

Я вижу примерыкак:

[[self navigationController] pushViewController:nextViewController animated:YES];

и у меня такие вопросы: Является ли navigationController свойством всех UIViewControllers?Могу ли я сослаться на self.navigationController независимо от представления в стеке?Если я в произвольном представлении, могу ли я иметь действие кнопки, которое содержит что-то вроде [self.navigationController popToRootViewController animated:YES];

В каждом представлении, которое я представляю, понадобится кнопка для возврата к предыдущему представлению или к корневому представлению, в зависимостина ситуацию.Я хочу создать эту кнопку в каждом контроллере представления и контролировать, к какому виду в стеке он возвращается.Я на правильном пути?

1 Ответ

8 голосов
/ 14 июля 2010

Является ли navigationController свойством всех UIViewController?

Да.

Могу ли я сослаться на self.navigationController независимо от представления в стеке?

Каждый UIViewController в стеке UINavigationController будет возвращать объект UINavigationController при вызове navigationController для него.

Если я в произвольном представлении, могу ли я иметь действие кнопки, которое содержит что-то вроде [self.navigationController popToRootViewControllerAnimated:YES];

Да. popToRootViewControllerAnimated: приведет пользователя к корню UIViewController для UINavigationController, и вы можете использовать [self.navigationController popViewControllerAnimated:YES];, чтобы просто выскочить из верхней части UIViewController. Этот последний делает то же самое, что и нажатие Back UIBarButtonItem.

Я на правильном пути?

Да:)

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