バックグラウンドで一定期間使用した後、ユーザーをアプリからロックアウトしたいと考えています。私は AppDelegate でこれをキャッチしていますapplicationWillEnterForeground
(そして に保存されている時間と比較していapplicationWillResignActive
ます)。タイムアウト期間よりも短い場合、アクションは実行されません。私が呼び出すタイムアウト期間を超えた場合:
[_navigationController popToRootViewControllerAnimated:NO];
これにより、ユーザーはルート ビューに戻ります。
1回の視覚的な中断で完全に正常に機能します. 以前のビュー (アプリケーションが非アクティブになったときにユーザーが表示していたビュー) は、ルートにポップする前に非常に短時間表示されます。テストでは、applicationWillEnterForeground
呼び出される前にビューが再表示されるようです。
私が持っていた唯一の考えは、塗りつぶされた長方形でビューを隠すなど、非アクティブになる前にすべてを非表示にすることです。これは汚いハックのようなにおいがするので、もっと良い方法があると思います。
また、同じ最終結果に到達するためのさまざまな方法にもオープンです。ありがとうございました!