PoptorootViewController не работает, а затем удаляет все Viewcontroller - PullRequest
0 голосов
/ 02 апреля 2010

Пытаясь исправить очень странную ошибку, у меня есть 3 контроллера представления, которые запускаются из делегата приложения и соответственно толкают друг друга. Контроллер третьего вида имеет кнопку на панели инструментов, которая вызывает код здесь:

-(void)showEventBrowser;
{ 
 accelManeger.delegate = nil;
 NSLog(@"%u",[self.navigationController.viewControllers count]);
 [self.navigationController popToRootViewControllerAnimated:NO];
}

Это работает первый раз, но когда я возвращаюсь к этому контроллеру представления и пытаюсь снова. Во-первых, он сообщает, что в стеке есть 3 контроллера представления. Затем он освобождает 2-й контроллер представления в стеке и не падает, но не идет дальше. Если я нажму кнопку еще раз, он говорит, что в стеке нет контроллеров представления и не отвечает.

У меня есть журналы для всех viewdid, viewwill, e.t.c в каждом контроллере представления, и, кажется, нет странного поведения. Также нет предупреждений памяти от любых контроллеров представления.

Почему это сработает один раз, а не во второй раз?

1 Ответ

1 голос
/ 03 апреля 2010

Ну, я исправил это.

Я пытался вывести контроллер контекста из viewcontroller, у которого не было вида, но он просто отображал контроллер UIImagepicker. Даже при попытке сначала закрыть этот modalviewcontroller (даже с задержкой) у меня все еще была та же проблема. Вместо этого я изменил рассматриваемый viewcontroller на подкласс UIMagepickercontroller и обработал настоящее и отклонил его в другом viewcontroller.

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

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