2012-03-08 3 views
6

Я разрабатываю приложение, в котором различные диспетчеры просмотра перемещаются в стек навигации при получении удаленных или локальных уведомлений.Нажатие ViewControllers на UINavigationController во время анимированного перехода ViewController

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

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

Есть ли способ проверить, изменяются ли viewcontrollers, и если так, подождите, пока переход не будет завершен? Или есть, возможно, некоторые другие способы решения этой проблемы?

Как всегда, любая помощь очень полезна!

+1

ли вы найти решение? У меня такая же проблема - мне нужно представить контроллер представления, когда приходит push-уведомление. Я могу найти верхний/видимый контроллер представления и присутствовать поверх него, но если этот контроллер просмотра находится в состоянии анимации перехода, приложение вылетает с «Попытка начать модальный переход из в , пока переход уже выполняется. " Ни один из свойств UIViewController, таких как isBeingDismissed, работает, поскольку они не возвращают значения, если они не используются из viewWillAppear –

ответ

4

Есть несколько способов получения состояния viewController. Такие как: (BOOL)isBeingPresented и (BOOL)isViewLoaded. Я хотел бы посмотреть в apple doc's on ViewControllers.

Также UINavigationController имеет несколько методов, и такие, как:

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
Смежные вопросы