Проблемы с UINavigationController - PullRequest
2 голосов
/ 19 июля 2011

Я использую UINavigationController в моем приложении. Идя назад, я хочу пропустить один вид. Что я сейчас делаю, так это:

В viewDidAppear вида, который я не хочу видеть, я проверяю, появилось ли оно при нажатии кнопки "Назад", если да, я вызываю:

[self.navigationController popViewControllerAnimated:YES];

Но что происходит, это:

нежелательный вид и предыдущий вид превращаются в один вид (один поверх другого).

больше объяснений:

нежелательный вид - это второй вид, и я хочу перейти к корневому виду: Другой код, который я использовал, был:

[self.navigationController popToRootViewControllerAnimation:YES]

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

Может кто-нибудь любезно сообщить мне, что я здесь не так сделал? Спасибо.

Ответы [ 2 ]

4 голосов
/ 19 июля 2011

Вы можете попробовать это:

int count = [self.navigationController.viewControllers count];
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:count-2]]

Имейте в виду, что count - это массив, начинающийся с 0, так что просто сделайте count - x, учитывая это.

Также я довольноконечно, это сработает, но выглядит не совсем чисто:

UINavigationController *navController = self.navigationController;

[navController popViewControllerAnimated:NO];
[navController popViewControllerAnimated:YES];

Надеюсь, это поможет.

0 голосов
/ 19 июля 2011

Что мне нужно было сделать, чтобы решить эту проблему, так это:

Настройка функции кнопки с третьего вида и в обработчике действий popToRootViewController

Спасибо.

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