iOS5 以降、viewWillAppear と viewWillDisappear の呼び出しが明らかに変更されました。したがって、何が起こるかに関係なく、iOS4 で起こっていることに依存できるのであれば、iOS5 で別の方法で動作するはずはありません。それは私にとって非常に奇妙です、それは試行錯誤のことになりました!
-viewWillAppear は、 -viewWillDisappear が以前に呼び出された場所でのみ呼び出されることが保証されていますが、ほとんどのモーダル ビュー/ウィンドウではそうではないようです。そして、それはおそらく通知センターの問題であり、モーダルウィンドウなどとして扱われている可能性があります!
残念ながら、私はあなたのための良いヒントを持っていません!
通知センターが閉じられたときに applicationDidBecomeActive が呼び出されているかどうかを確認し、アプリデリゲートを介してロジックを接続することができます。
- (void)applicationDidBecomeActive:(UIApplication *)application
iOS アプリ プログラミング ガイドから:
iOS 5 では、バナーを表示する通知は、アラートベースの通知のようにアプリを非アクティブ化しません。代わりに、バナーはアプリ ウィンドウの上端に沿って配置され、アプリは以前と同様にタッチ イベントを受け取り続けます。ただし、ユーザーがバナーをプルダウンして通知センターを表示すると、アラート ベースの中断が発生したかのように、アプリは非アクティブ状態に移行します。ユーザーが通知センターを閉じるか、別のアプリを起動するまで、アプリは非アクティブな状態のままです。この時点で、アプリは適切なアクティブ状態またはバックグラウンド状態に移行します。ユーザーは設定アプリを使用して、バナーを表示する通知とアラートを表示する通知を構成できます。