私のアプリにはログインがあり、ログインに成功するとユーザーはセッション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を取得している非存在View Controller
- 3. UINavigationController StackでいくつかのView Controllerを「ポップ」する
- 4. View Controllerを再初期化する - iPhone
- 5. View Controller NIBを別のView Controllerに追加する
- 6. UINavigation controllerプッシュ&ポップ
- 7. UITabBarControllerの前にView Controllerを起動するには?
- 8. iphone - numberOfRowsInSectionはviewDidAppearの前に呼び出されています
- 9. デザイン時にView ControllerオブジェクトをTable View Controllerに簡単に変換する(ストーリーボード)
- 10. iPhoneでカスタムPicker View Controllerを作成する方法は?
- 11. iPhone App Dev - View Controllerからビューをロードする
- 12. view to controller communication
- 13. View Controller lifecycle
- 14. iOS5 Second View Controller
- 15. View Controller resize
- 16. View Controllerをナビゲーションコントローラにプッシュ
- 17. UINavigationController:すべてのポップされたView Controllerのビューに共通のパディング/マージンを適用する
- 18. iPhone SDK:最初のView Controllerが表示される前にUIImageViewをダウンロードして設定します。
- 19. 'Controller'クラスの 'View'に値を戻す
- 20. UIImageを別のView Controllerに渡す
- 21. Model-View-Controller with GWT
- 22. View Controller内のナビゲーションバーを取り除くiphone sdk
- 23. PopOver View Controllerのサイズを変更する
- 24. Table View Controllerのタイプを通常のView Controllerに変更するにはどうすればよいですか?
- 25. UINavigationControllerを使用してView Controllerをポップするときの値の受け渡し
- 26. View Controllerを閉じるには
- 27. Table View Controllerを自分のView Controllerサブクラスに設定するにはどうすればよいですか?
- 28. TabBarItemの複数のView Controller
- 29. View Controllerの配列内のView Controllerを解放するにはどうすればいいですか?
- 30. viewDidAppearイベント後のiPhone EXC_BAD_ACCESS
+1ログインするモーダルビューコントローラについての非常に良い提案。 – InsertWittyName