С Xcode 4.2 удалить представление из navcontroller затем выдвинуть новое представление? - PullRequest
0 голосов
/ 27 марта 2012

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

Я пробовал это:

[self.navigationController popViewControllerAnimated:NO];
[self.navigationController pushViewController:tabBar animated:YES];

Но viewController просто выталкивается, а новый не отображается.

Ответы [ 2 ]

3 голосов
/ 27 марта 2012

Вы должны попытаться изменить массив контроллера представления navigcontrollers следующим образом:

[self.navigationController pushViewController:tabBar animated:YES];
NSMutableArray *VCs = [NSMutableArray arrayWithArray: self.navigationController.viewControllers];
[VCs removeObjectAtIndex:[VCs count] - 2];
[self.navigationController setViewControllers: VCs];

Возможно, анимация будет нарушена.В этом случае вы должны переместить деталь с модификацией массива VC навигационного контроллера в метод viewDidAppear представленного VC.

0 голосов
/ 27 марта 2012

Проблема в том, что self освобождается, как только вы вызываете popViewControllerAnimated :. Затем push-вызов отправляет сообщение на ноль.

Вы можете сначала назначить self.navigationController локальной переменной и использовать ее вместо нажатия и извлечения.

В качестве альтернативы, это немного хак, но перед этим вы можете вызвать [[self-retain] autorelease], чтобы дать ему дополнительное сохранение, чтобы оно не исчезало до конца цикла выполнения.

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