私の iOS アプリには、アプリを一定時間 (たとえば 1 時間) 一時停止した場合、アプリを以前の場所ではなく、ホーム画面に戻す必要があるという要件があります。アプリをドリルダウンし、何かを調べて、それを忘れるという考え方です。1 時間後に再びアプリが必要になったとき、以前に行っていたことは関係なく、ホーム画面で再び自動起動したいだけです。
これをDidEnterBackground
andで実装しましたが、WillEnterForeground
ほぼ完全に機能します。アプリがバックグラウンドになったら、タイムスタンプを書き込みます。再開したら、タイムスタンプを現在の時刻と比較し、ウィンドウが 1 時間よりも長い場合は、animation=false で ViewController スタックからすべてをポップし、ホームに戻ります。
これはiPadとすべてのシミュレーターで機能しますが、私のiPhoneでは、家に帰る前に前の画面が表示されますが、表示される前に WillEnterForeground
表示され、アニメーションなしでスタックからポップされます。見えません。何が起きてる?