2

私はちょっとした問題に直面しています:

アプリを起動すると、次のようなものがあります。

(1) スプラッシュ ビュー --> ログに記録されていますか? --> (3) ホームビュー | else (2) ログインビュー

そのため、ログインすると、ホーム ビューに移動します。ログアウトすると、そこから来たので、ログイン ビューに戻ることができます。

しかし、ログイン ビューからパスせずに直接ホーム ビューにリダイレクトすると、ログアウト時にログイン ビューに戻ることができません。

誰かがこれについての解決策を知っていますか?

4

3 に答える 3

1

私はここに私のロジックを入れました:あなたのアプリの
ように、1つのviewControllerを取得/追加DummyViewControllerします。rootViewControllerメソッドでは、DummyViewController's viewWillAppearロジックを次のように配置します

- (void)viewWillAppear:(BOOL)animated 
{
    [super viewWillAppear:animated];

    if(login == YES)
    {
       //go to home screen
    }
    else
    {
      // go to login screen
    }
}

DummyViewControllerもうコードを書く必要はありませviewWillAppearん。ログアウトしたい場合は 、電話してください

[self.navigationController popToRootViewControllerAnimated:YES]; 

また、ログイン状態に基づいて画面を管理するviewWillAppear方法もあります。DummyViewController

于 2014-04-30T08:32:56.787 に答える
0

NSNotificationCenterログアウトが完了したときにルートクラスに通知するために使用できます。次に、あなたにポップrootViewController

UINavigationController を使用している場合は、NavigationController's RootViewController以下のようにログイン コントローラーを提示するだけです。

-(void)logoutNotification
{
logout = YES;
}

-(void)viewDidAppear:(BOOL)animated
{
    if (logout)
    {        
        AuthController * auth = [[AuthController alloc] init];

        [self presentViewController:auth animated:NO completion:^{

        }];

        logout = NO;

        auth = nil;
    }
}
于 2014-04-30T08:29:37.223 に答える
0

少しばかげた方法かもしれませんが、常にログインビューをロードして、「ログインしていますか?」小切手。隠したり、待機中のサインなどを付けてロードしたりできます...この方法では、ログアウト時にすでにロードされています。

あなたのコードを見なければ、方法を示すことはできませんが、ロジックは十分だと思います。

于 2014-04-30T08:30:13.277 に答える