Пытаясь исправить очень странную ошибку, у меня есть 3 контроллера представления, которые запускаются из делегата приложения и соответственно толкают друг друга. Контроллер третьего вида имеет кнопку на панели инструментов, которая вызывает код здесь:
-(void)showEventBrowser;
{
accelManeger.delegate = nil;
NSLog(@"%u",[self.navigationController.viewControllers count]);
[self.navigationController popToRootViewControllerAnimated:NO];
}
Это работает первый раз, но когда я возвращаюсь к этому контроллеру представления и пытаюсь снова. Во-первых, он сообщает, что в стеке есть 3 контроллера представления. Затем он освобождает 2-й контроллер представления в стеке и не падает, но не идет дальше. Если я нажму кнопку еще раз, он говорит, что в стеке нет контроллеров представления и не отвечает.
У меня есть журналы для всех viewdid, viewwill, e.t.c в каждом контроллере представления, и, кажется, нет странного поведения. Также нет предупреждений памяти от любых контроллеров представления.
Почему это сработает один раз, а не во второй раз?