0

私のアプリケーションでは、起動時およびバックグラウンドから再開して読み込み/概要画面を表示するときに、ルートビューコントローラーの上にモーダルビューコントローラーを表示しています。これは、ルートビューコントローラを表示するために数秒後に閉じられます。モーダルはapplicationWillEnterForeground、アプリデリゲートのメソッドを介して提示されます。

すべて正常に動作していますが、バックグラウンドから再開すると、ロードモーダルが再度表示される前に、下部ルートビューコントローラーのフラッシュが表示されることがよくあります。

最初に下のビューを見なくても安全に表示されるように、このプレゼンテーションを行うための明白な方法を見つけるのに苦労しています。私は盲目的に明白な何かを見逃していますか?

4

2 に答える 2

2

ドキュメントには次のように記載されています。

彼らの写真を撮る準備をしてください。applicationDidEnterBackground: メソッドが戻ると、システムはアプリのユーザー インターフェイスの写真を撮り、結果の画像を遷移アニメーションに使用します。インターフェイスのビューに機密情報が含まれている場合は、applicationDidEnterBackground: メソッドが戻る前に、それらのビューを非表示にするか変更する必要があります。

これはapplicationDidEnterBackground:、アプリがバックグラウンド状態になったときに iOS が自動的に取得する画像に表示されるように、ビューを変更する必要があることを意味します。

また、次の点にも注意してください。

アプリ デリゲートの applicationDidEnterBackground: メソッドは、タスクを終了して戻るまでに約 5 秒かかります。実際には、このメソッドはできるだけ早く戻る必要があります。時間がなくなる前にメソッドが返されない場合、アプリは強制終了され、メモリから消去されます。タスクの実行にさらに時間が必要な場合は、beginBackgroundTaskWithExpirationHandler: メソッドを呼び出してバックグラウンド実行時間を要求し、実行時間の長いタスクをセカンダリ スレッドで開始します。バックグラウンド タスクを開始するかどうかに関係なく、applicationDidEnterBackground: メソッドは 5 秒以内に終了する必要があります。

于 2012-06-25T15:54:07.817 に答える
0

私が思い出したように、アプリがバックグラウンドのとき、Apple コードはスクリーンショットを取得して保存します。アプリが再起動されると、アプリの起動が完了して引き継がれるまで、スクリーンショットが表示されます。

簡単に言えば、コンテンツのフラッシュを避けることはできないと思います。

実際には 2 つの選択肢があります。スムーズな移行を行うために、短い「表示」アニメーションを作成することをお勧めします。ただし、再ログインプロンプトなどで機密情報を保護しようとしている場合は機能しません。そのような状況に対処している場合は、そこから戻ってくるときではなく、backound 状態に入ったときに処理する必要があります。

于 2012-06-25T15:43:44.263 に答える