UINavigationItem не синхронизирован при использовании popToRootViewController

Я касаюсь элемента панели вкладок, который запускает poptoRootViewControllerAnimated. В большинстве случаев он работает так, как ожидалось, но в некоторых случаях он отображается в правильном представлении, но элемент навигации не синхронизирован, «застревает» в представлении, в котором я был ранее.

Я читал о людях, имеющих эту проблему с iPad в ландшафтном режиме, но решения, которые я нашел, в этом случае не работают. Это приложение для iPhone в портретном режиме.

Происходит как в симуляторе, так и на реальном iPhone. Если у кого-то есть предложение или решение, я буду очень счастлив!


person trydis    schedule 05.05.2011    source источник
comment
вы добавили UITabBarController в навигационный контроллер?   -  person Swapnil Luktuke    schedule 05.05.2011
comment
В корне иерархии находится UITabBarController с UINavigationController для каждого элемента на панели инструментов. Проблема возникает только с одним из них.   -  person trydis    schedule 05.05.2011


Ответы (2)


Оказывается, разные версии iOS обрабатывают это по-разному. Это происходило только в более старых версиях, поэтому нам пришлось вручную пересобирать стек.

person trydis    schedule 02.08.2011

вы получаете какое-либо сообщение в консоли, например

вложенная анимация push может привести к повреждению панели навигации

и

Завершение навигационного перехода в неожиданном состоянии. Дерево подпредставления панели навигации может быть повреждено.

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

person Swapnil Luktuke    schedule 06.05.2011
comment
Нет, это происходит, когда я нажимаю элемент панели вкладок, который вызывает popToRootViewControllerAnimated. Правда только при проделывании определенной комбинации действий в предыдущем виде, до выскакивания в корень. У меня есть подкласс UINavigationController, который переопределяет popToRootViewController и имеет фальшивый контроллер представления с индексом 0. Затем я могу перейти к контроллеру представления с индексом 1, который будет выведенным из системы/вошедшим в систему контроллером представления в зависимости от действий пользователя . Кажется, мне придется использовать другой подход, вместо того, чтобы вставлять фальшивую vc в индекс 0, что должно быть выполнимо. - person trydis; 07.05.2011