1

私はIOSを初めて使用するので、この質問が明確に表現されていない場合は申し訳ありません. 私は周りを探してみましたが、探しているものが正確に見つかりませんでした。

基本的に、AppDelegate applicationDidBecomeActive メソッドで、Web サービスを呼び出して、ユーザーがまだ有効なユーザーであることを確認し、更新されたデータをプルダウンするか、無効になっている場合はログイン ページに戻します。

悩んでいるのは第二部です。ユーザーが無効であることが判明した場合、特定の ViewController (この場合は loginViewController) をロードして表示するにはどうすればよいですか? それらが有効なときに通常のviewControllerフローを発生させたいのですが、これはうまくいっていますが、AppDelegateから必要なときに特定のviewControllerを起動する方法がわかりません。

何か案は?

わかったと思います!このコードを AppDelegate で使用して、必要な ViewController を表示しました。

UIViewController *loginController = [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
    UINavigationController *loginNavController = [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:@"LoginNavController"];
    UIViewController *currentVC = self.window.rootViewController;
    _window.rootViewController = loginNavController;
    [currentVC presentViewController:loginNavController animated:NO completion:nil];
4

1 に答える 1

0

簡単にするために、1 つのビュー アプリがあるとします (ナビゲーション コントローラーではなく、タブ バー コントローラーではありません。ソリューションはスケーリングしますが、説明は簡単です)。アプリが起動したという appDelegate メッセージを受け取ったら、UIImageView をルート ビューにして起動イメージを表示します (ユーザーはまだ起動していると考えます)。ログインを試み、他のオブジェクト (View Controller ではない) でこれを行います。成功すると、目的のビューを rootView にすると、ユーザーに表示されます。ログインに失敗した場合は、ログイン ウィンドウを rootView にします。ここで重要なのは、これを駆動し、appDelegate とやり取りできるオブジェクトを用意することです。この機能を appDelegate 自体に追加することもできます。

于 2012-08-14T23:13:49.530 に答える