2016-09-05 16 views
1

私は、アプリケーションの状態を保存して復元しようとしています。私はそれを集める アプリケーションデリゲートのメソッドshouldSaveApplicationState:は状態を保存し、ビューコントローラのリストアIDを設定すると、 application:shouldRestoreApplicationState:は、アクティブに戻るときにビューコントローラに戻るはずです。IOS:アプリケーションの状態を復元する方法

しかし、ホームボタンを使用してアプリケーションを強制終了した場合 - たとえば、電話をかけるかサファリで何かをチェックする - 私がアプリに戻ったときに、されたが、最初のビュー・コントローラーから再始動する。

これはユーザーに不快感を与えるものであり、ユーザーがどこにいたのかというすべての問題に直面する必要があるため、間違いなく最適です。

解雇時にapplication:shouldRestoreApplicationState:をログアウトすると、このケースでは解雇されていないように見えます。これは明らかに、このquestionのように設計されています。

状態を取得するためにこのメソッドを強制的に呼び出す方法はありますか?また、アプリケーションが入っている場所に戻るには、アプリが通話中などに中断されるのではなく、積極的に放置されている場合にどうすればよいでしょうか?

ありがとうございます。

答えて

1

これは私の間違いであることが判明しました。メソッドapplication:shouldRestoreApplicationState:がホームボタンを押した後にレジューム時に起動しなかったのは、ファイルのメソッドapplicationDidBecomeActive:(UIApplication *)applicationがライフサイクルの早い段階で発生し、アプリケーションをスタートアップページにリダイレクトしていたためです。私はapplicationDidBecomeActiveの面倒なリダイレクトをライフサイクルの復元方法の後に来るapplicationDidFInishLaunchingに移動することでこれを解決しました。これにより、shouldRestoreApplicationStateが発射されました。

メモ:ホームボタンを押すことは強制終了ではなく、リストアメソッドの起動の例外です。

関連する問題