13
ストーリーボードログイン画面のベストプラクティス、ログアウト時のデータの消去の処理
Storyboardを使用してiOSアプリを構築しています。ルートビューコントローラーはタブバーコントローラーです。ログイン/ログアウトプロセスを作成していますが、ほとんど問題なく機能していますが、いくつか問題があります。これらすべてをセットアップする最良の方法を知る必要があります。 以下を達成したい: アプリを初めて起動したときにログイン画面を表示します。ログインしたら、Tab Bar Controllerの最初のタブに移動します。 その後アプリを起動するたびに、ログインしているかどうかを確認し、ルートタブバーコントローラーの最初のタブに直接スキップします。 手動でログアウトボタンをクリックすると、ログイン画面が表示され、View Controllerからすべてのデータが消去されます。 これまでに行ったことは、ルートビューコントローラーをタブバーコントローラーに設定し、ログインビューコントローラーにカスタムセグエを作成することです。タブバーコントローラークラス内で、viewDidAppearメソッド内にログインしているかどうかを確認し、セグエを実行します。[self performSegueWithIdentifier:@"pushLogin" sender:self]; また、ログアウトアクションを実行する必要がある場合の通知を設定します。 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(logoutAccount) name:@"logoutAccount" object:nil]; ログアウト時に、キーチェーンから資格情報を消去し[self setSelectedIndex:0]、セグエを実行して、ログインビューコントローラーを再度表示します。 これはすべて正常に動作しますが、このロジックはAppDelegateにある必要がありますか?また、2つの問題があります。 彼らが初めてアプリを起動したとき、セグエが実行される前に、Tab Bar Controllerが短時間表示されます。私はコードをに移動しようとしましたviewWillAppearが、セグエはそれほど早く機能しません。 ログアウトしても、すべてのデータはすべてのView Controller内にあります。ユーザーが新しいアカウントにログインすると、更新するまで古いアカウントデータが表示されます。ログアウト時に簡単にこれをクリアする方法が必要です。 私はこれをやり直すことにオープンです。ログイン画面をルートビューコントローラーにするか、AppDelegateでナビゲーションコントローラーを作成してすべてを処理することを検討しました...この時点で最良の方法がわからないだけです。
290
ios
login
uistoryboard
logout
clear