2016-03-23 14 views
0

私が探しているのは、アプリケーションがバックグラウンドになったり非アクティブになるたびに、アプリケーションがルートビューコントローラにリセットされないようにするための仕組みです。applicationDidBecomeActiveはinstagramと似たようにログインしています

私の本能はAppDelegateのapplicationWillEnterForegroundメソッドを最初に突きつけてくれました。ここで私は後にViewControllerを表示しようとしましたが、私はviewControllerをインスタンス化し、私はそれを提示することができますが、通常はそこにあるナビゲーションコントローラはありません。

これは、アプリケーションの「状態」(NavigationControllerのスタックかもしれません)を保存してから、再起動したときに何らかの形でスタックを復元する必要があると思います。

各イベントの実行タイミングを見て、アプリケーションを終了して再起動するとアプリケーションが新しく起動することに気付きました。私はNSUserDefaultsがまだ存在しているので、ログインしているユーザーを確認することができます。これは、ナビゲーションコントローラ内のどのビューを(ログインまたはダッシュボードのどちらに)プッシュするかを決定するのに役立ちます。

いずれの方向も高く評価されています。


この記事の中で最も暴露の答えは、用途間で永続的なデータを格納するために、いくつかのストレージ(NSUserDefaults)を使用しました。

私の具体的なケースでは、これはユーザー情報を保持するキーを格納していました。アプリケーションがロードされると、最初のビューが表示されますが、そのキーが見つからない場合は、その前にログインビューがモーダルに表示されます。

答えて

0

これを行うには、NSUserDefaultsを使用してアプリケーションの現在のビューを保存し、アプリケーションの起動が完了したらそのビューに切り替えます。この質問への回答を参照してください:Swift: How to store user preferences?

+0

さて、私はこれらの設定を保存する方法を知っています。それがアクティブになったときにnavControlを含むnavController内にロードされ、nav bar/tab barなしでは表示されないようにするにはどうすればよいですか? – Neurax

関連する問題