2011-11-12 14 views
0

での電話の後、私はアプリの中断を取得し、それが戻って来るとき、私はこれを使用する必要があることを知っている:メインビューに戻るiPhone

- (void)applicationDidBecomeActive:(UIApplication *)application 

しかし、どのように、私は希望、アプリが再びアクティブになったとき以前に開いたビューコントローラをすべて終了し、メインビューコントローラを表示しますか?

答えて

0

これはお使いのアーキテクチャによって異なる場合があります。ビューを管理するためにUINavigationControllerを使用する場合は、popToRootViewControllerを呼び出して、他のものをすべてナビゲーションスタックから外してルートビューに戻します(アプリケーションデリゲートでプロパティなどを維持する必要があります)。モーダルビューを開いている場合は、現在アクティブなモーダルダイアログ(存在する場合)を含むアプリケーションデリゲートのプロパティを保持することができます。

applicationDidBecomeActive:は、アプリケーションがバックグラウンドに置かれたときなどにも呼び出されます(ユーザーがその間に別のアプリを利用したためなど)、ユーザーがアプリに戻ると(最初の起動時にも)ルートビューには、ユーザーが期待するものとは異なるものがある可能性があります。

+0

私はモーダルビューを使用します。私のアプリケーションデリゲートにプロパティを維持することによって、どういう意味ですか? – Snowman

+0

あなたのアプリケーションデリゲートにプロパティを配置し、モーダルダイアログを表示するたびに、そのプロパティをモーダルビューに設定します。ビューが終了するたびに、そのプロパティをnilに再度設定します。モーダルビューの1つだけがいつでも表示されるようになりましたので、常に現在表示されているビューへの参照を常に持ち、それを適切に却下することができます。 –