2012-03-08 13 views
6

リモートまたはローカルの通知を受信するときに、異なるViewControllerがナビゲーションスタックにプッシュされるアプリケーションを開発しています。アニメーション化されたViewControllerトランジション中にViewControllerをUINavigationControllerにプッシュ

この問題は、アプリケーションがアクティブで、アニメーション化されたビューコントローラーの切り替えの間に通知が来ると発生します。これはnavigationcontrollerを台無しにし、私は次のエラーメッセージが出ます:

ネストされたポップ・アニメーションが予期しない状態でのナビゲーション遷移まで 仕上げ破損したナビゲーションバーにつながることができます。ナビゲーションバー サブビューツリーが壊れている可能性があります。

viewcontrollersが変更されているかどうかを確認する方法はありますか?そうであれば、移行が完了するまで待ちますか?あるいは、おそらくこの問題を解決する他の方法がありますか?

いつものように、どんな助けも非常に魅力的です!

+1

:私はまた、UINavigationControllerのようなも方法のカップルを持っているapple doc's on ViewControllers.

に見えるのでしょうか?私は同じ問題を抱えています。プッシュ通知が到着したら、View Controllerを提示する必要があります。トップ/可視のビューコントローラーを見つけてその上に表示できますが、そのビューコントローラーがトランジションのアニメーション化の状態にある場合、アプリケーションは「からモーダルトランジションを開始しようとしています移行中は既に進行中です。 " viewWillAppearから使用されていない限り値を返さないため、isBeingDismissedなどのUIViewControllerプロパティは機能しません –

答えて

4

viewControllerの状態を取得する方法はいくつかあります。例えば:(BOOL)isBeingPresentedおよび(BOOL)isViewLoaded。あなたが解決策を見つけるか

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
関連する問題