self.navigationcontroller выдвигает viewcontroller без элемента навигации - PullRequest
0 голосов
/ 29 апреля 2011

У меня заканчиваются идеи с этой проблемой.У меня есть 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.

  1. Может ли это быть связано с connectionDidFinishLoading: быть другим потоком?
  2. У кого-нибудь есть предложения, как получить «навигационный контроллер в этой вкладке» по-другому?

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

Спасибо за любую помощь, я чувствую себя застрявшим!

1 Ответ

0 голосов
/ 11 октября 2011

То, что вы сказали, дало мне идею. Я думал, что self.navigationController может быть установлен в ноль после его нажатия, поэтому он не устанавливается, когда вы нажимаете новый контроллер представления. Это решило проблему! :)

UINavigationController *navigationController = self.navigationController;
[navigationController popToRootViewControllerAnimated:NO];
[navigationController pushViewController:lastViewController animated:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...