私のアプリにはログインがあり、ログインに成功するとユーザーはセッションIDを取得します。ユーザーのセッションが終了し、期限切れのセッションがあるページを要求すると、バックエンドはセッションが終了したことを報告し、ユーザーはログインし直してからpopToRootViewControllerAnimated
(ログインページ)を呼び出します。 NSURLConnection
クラスを使用して、ダウンロードが完了したときのコールバックをUIViewController
にスケジュールしています。私が遭遇している問題は、私がviewDidLoad
の間にNSURLConnection
をスケジュールし、ビューコントローラが現れる前に接続レポートが戻ってくることです。私はNSURLConnection
をviewDidAppear
に入れますが、ビューが出現するたびにサーバーに連絡したくありません。誰もがこの問題を解決する最良の方法を知っていますか?ViewDidAppearの前にiPhoneをポップするView Controller
0
A
答えて
2
まず、列挙型の変数を宣言:
typedef enum {
StatusLoggedOut,
StatusAttemptingLogin,
StatusLoggedIn
} LoginStatus;
次にログイン状態を保存するために、あなたのビューコントローラにメンバ変数を追加します。その後、viewDidAppear内側:
- (void)viewDidAppear:(BOOL)animated
{
if (loginStatus == StatusLoggedOut) {
loginStatus = StatusAttemptingLogin;
// start the NSURLConnection
}
}
ログインが完了すると、あなたは(それが判明する方法に応じて)StatusLoggedInまたはStatusLoggedOutに状態を切り替えることができます:あなたはこれを行うことができます。
あなたは単純なBOOLを手に入れることができましたが、すべての中間の状態を表す方が良いとの経験が教えてくれました。
また、あなたはこれについて質問しませんでしたが、ログイン画面をモーダルビューとして提示した方がユーザーの利便性が向上すると思います。 popToRootViewController
を使用すると、ユーザーは自分のアプリで自分の場所を失い、迷惑になります。 (保存して復元しない限り、自分で多くの作業をしています)
関連する問題
- 1. iPhone View Controller Register
- 2. viewDidAppearで同時に2つのView Controllerを表示
- 3. View Controllerをより良くポップするには?
- 4. ViewDidAppearを取得している非存在View Controller
- 5. UINavigationController StackでいくつかのView Controllerを「ポップ」する
- 6. View Controllerを再初期化する - iPhone
- 7. ViewDidAppearを使用してView Controllerを表示し、終了時に再び開く
- 8. View Controllerの終了は直前のView Controllerに戻りません
- 9. UINavigation controllerプッシュ&ポップ
- 10. View Controller NIBを別のView Controllerに追加する
- 11. iphone - numberOfRowsInSectionはviewDidAppearの前に呼び出されています
- 12. コンテナビュー内の別のView ControllerからView Controllerをロードする
- 13. UITabBarControllerの前にView Controllerを起動するには?
- 14. 別のView ControllerでView Controllerを起動する方法は?
- 15. 前のView Controllerを参照するには?
- 16. iPhone App Dev - View Controllerからビューをロードする
- 17. iPhoneでカスタムPicker View Controllerを作成する方法は?
- 18. デザイン時にView ControllerオブジェクトをTable View Controllerに簡単に変換する(ストーリーボード)
- 19. 別のView Controllerに戻って別のView Controllerに転送する方法
- 20. ユーザーが別のView Controllerにログインした後、Main View Controllerをリフレッシュする
- 21. View ControllerからView ControllerにFirebaseデータを送信
- 22. View Controllerをサブクラス化する
- 23. View Controller前のビューを閉じて再表示するコントローラ
- 24. ナビゲーションスタック内の特定のView Controllerにポップする間に他のVCを表示しない
- 25. iPhone XのView Controllerの下部にイメージを制限する方法(ホームインジケータの下)
- 26. .swiftを変更してView ControllerではなくTable View Controllerに接続する
- 27. viewDidAppearイベント後のiPhone EXC_BAD_ACCESS
- 28. UINavigationController:すべてのポップされたView Controllerのビューに共通のパディング/マージンを適用する
- 29. View Controller内のナビゲーションバーを取り除くiphone sdk
- 30. view to controller communication
+1ログインするモーダルビューコントローラについての非常に良い提案。 – InsertWittyName