ログインセッションを含むアプリケーションがあります。アプリケーションが中断されたとき (iOS 4)、現在の時刻を保存し、次回アプリケーションがアクティブになった場合は、中断時間から 15 分以内に再開したいと考えています。それ以外の場合は、セッションの有効期限が切れているため、ログイン画面に戻りたいです。
これを実装するために私が今書いていることは次のとおりです。
アプリ デリゲートの applicationDidBecomeActive で、時間を確認し、必要に応じてログイン画面を (モーダルに) 表示します。ただし、問題は、中断時にアプリケーションが UIAlertView または UIActionSheet を表示していた場合、ログイン画面を表示しても自動的に閉じないことです。UIAlertView または UIActionSheet は、それがまったく属していないログイン画面に表示されます。各 UIAlertView と UIActionSheet を登録して applicationDidBecomeActive をリッスンし、必要に応じて閉じることができることはわかっていますが、アプリケーション全体にそれらの多くがあるため、それを回避できれば非常に便利です。
別のView Controllerがモーダルに表示されていても、アクティブなビューをすべて閉じる方法があるかどうか疑問に思っていました.
または、iOS 4 でセッション タイムアウトを処理するためのより良い方法があれば教えてください。