2016-08-10 7 views
0

起動画面またはmain.storyboardの最初のViewControllerで始まるのではなく、特定のシーンのバックグラウンドからアプリを起動する方法が不思議です。アプリがバックグラウンドiOSから起動するときに特定のシーンから開始

たとえば、ユーザーがプロフィールのシーンを見ていて、そこからバックグラウンドにアプリを移動させる場合は、次回に同じプロフィールのシーンを(リロードしたり、プロフィールの写真、バイオなどなく)起動したいと思いますユーザーはアプリをフォアグラウンドに持ってきます。

今の場合は、Appは常に起動画面で開始することで、または以前にロードされた情報は去っていきました。アプリケーションがバックグラウンドに入るとき

にはどうすれば特定のシーンを覚えていることができますか?ところで、私はストーリーボードを屈折させたときにこの問題に気付きました。

答えて

1

これはまさに状態復元のためのものです!

状態の復元は、彼らはそれを残している正確な状態で自分のアプリへのユーザーの復帰をすることができますiOSのの機能です - に関係なく、舞台裏で起こった何の。

application:shouldSaveApplicationState:とapplication:shouldRestoreApplicationState: をオーバーライドしてtrueに戻すことで、appDelegateから有効にすることができます。

次に、viewControllerにrestorationIdentifierを適用する必要があります(はい、ストーリーボードから行うことができます:))。そうすることで、ユーザーは最後に残ったスクリーン/スクリーン階層に戻ることができます... ただし、表示する必要があるデータをロジックで処理する必要があります。 viewControllerのサブクラスでは、encodeRestorableStateWithCoder:およびdecodeRestorableStateWithCoder:をオーバーライドして、データを格納してから、コーダーから表示することができます。

は、ここでは、アップルのドキュメントを見つける:https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/PreservingandRestoringState.html

とレイWenderlich(男性が大好き!)ここに:https://www.raywenderlich.com/117471/state-restoration-tutorial

+0

だけ答えとして、オフサイトのリンクを投稿しないでください。答えには、少なくともそれ自身の基礎情報が含まれていなければなりません。リンクが悪くなったり消えたりして、このような答えが将来の読者には役に立たない。 – rmaddy

+0

ありがとう、私は見てみましょう。 –

+0

@rmaddy:回答が完了しました。どうも。 –

関連する問題