私が探しているのは、アプリケーションがバックグラウンドになったり非アクティブになるたびに、アプリケーションがルートビューコントローラにリセットされないようにするための仕組みです。applicationDidBecomeActiveはinstagramと似たようにログインしています
私の本能はAppDelegateのapplicationWillEnterForeground
メソッドを最初に突きつけてくれました。ここで私は後にViewControllerを表示しようとしましたが、私はviewControllerをインスタンス化し、私はそれを提示することができますが、通常はそこにあるナビゲーションコントローラはありません。
これは、アプリケーションの「状態」(NavigationControllerのスタックかもしれません)を保存してから、再起動したときに何らかの形でスタックを復元する必要があると思います。
各イベントの実行タイミングを見て、アプリケーションを終了して再起動するとアプリケーションが新しく起動することに気付きました。私はNSUserDefaults
がまだ存在しているので、ログインしているユーザーを確認することができます。これは、ナビゲーションコントローラ内のどのビューを(ログインまたはダッシュボードのどちらに)プッシュするかを決定するのに役立ちます。
いずれの方向も高く評価されています。
この記事の中で最も暴露の答えは、用途間で永続的なデータを格納するために、いくつかのストレージ(NSUserDefaults)を使用しました。
私の具体的なケースでは、これはユーザー情報を保持するキーを格納していました。アプリケーションがロードされると、最初のビューが表示されますが、そのキーが見つからない場合は、その前にログインビューがモーダルに表示されます。
さて、私はこれらの設定を保存する方法を知っています。それがアクティブになったときにnavControlを含むnavController内にロードされ、nav bar/tab barなしでは表示されないようにするにはどうすればよいですか? – Neurax