У меня заканчиваются идеи с этой проблемой.У меня есть UITabbarcontroller и 2 вкладки с навигационными контроллерами.
У меня есть набор контроллеров ViewController для навигации.Эти ViewControllers используются в одном и том же порядке на обеих вкладках / навигационных контроллерах с немного отличающимися данными.
Предыдущий к последнему Viewcontroller выполняет NSURLConnection, и в connectionDidFinishLoading: последний контроллер представления должен быть показан, используя этот код:
[self.navigationController popToRootViewControllerAnimated:NO];
[self.navigationController pushViewController:lastViewController animated:YES];
Это откроется в корневом контроллере представления, но никогда не будет выдвигать последний ViewController. (Sidenote: На самом деле это работало довольно долго, но перестало работать при использовании этого также из контроллера навигации второй вкладки).
Более того, если я закомментирую первую строку:
//[self.navigationController popToRootViewControllerAnimated:NO];
[self.navigationController pushViewController:lastViewController animated:YES];
Отображается последний view-контроллер, но на панели навигации отсутствует кнопка возврата, и он не отключен или что-то еще.Я подозреваю, что как-то self.navigationcontroller возвращает неправильный навигационный контроллер.Это как если бы навигационный контроллер «забыл» о стеке viewcontroller.
- Может ли это быть связано с connectionDidFinishLoading: быть другим потоком?
- У кого-нибудь есть предложения, как получить «навигационный контроллер в этой вкладке» по-другому?
Я трижды проверил код вверх и вниз, я не смог ничего найти.Другие контроллеры вида до этого запускаются без проблем.
Спасибо за любую помощь, я чувствую себя застрявшим!