1

ユーザーがすでにログインしているかどうかを確認するメイン ビュー コントローラーが必要です。ログインしている場合は、タブ ビュー コントローラーに移行します。そうでない場合は、ログインを処理するログイン ビュー コントローラーにセグエしてから、タブ ビュー コントローラーにセグエします。

機能アウトのセグエの側面だけをテストするために、別のプロジェクトを作成しました。UIViewController のすべてのサブクラスである 3 つのビュー コントローラーを作成しました。そのうちの 1 つはメイン ビュー コントローラーで、残りの 2 つは条件付きセグエが発生する単純なビュー コントローラーです。

ストーリーボードで条件ベースのカスタムセグエを適用する方法について、スレッドで「トリガーのない」セグエの作成について読みました

ユーザーがログインしているかどうかに応じて実行時に 2 つのうちの 1 つだけを実行するように手動で選択するように、2 つのトリガーなしのセグエを作成するにはどうすればよいですか? または、このかなり一般的なシナリオを達成する別の方法はありますか?

4

2 に答える 2

1

ユーザーがログインしているかどうかに応じて実行時に 2 つのうちの 1 つだけを実行するように手動で選択するように、2 つのトリガーなしのセグエを作成するにはどうすればよいですか?

  • ログオン画面につながる最初のトリガーなしのセグエを作成します。識別子を付けて、たとえば、needLogin
  • タブ ビューにつながる 2 番目のトリガーのないセグエを作成します。識別子を付けて、たとえば、whenLoggedIn
  • メイン ビュー コントローラーでアクションを定義し、このコードを関連するメソッドに配置します。


// This is attached to the button on the main screen
-(void)onCheckLogin {
    if (userIsLoggedIn) {
        [self performSegueWithIdentifier:@"whenLoggedIn" sender:self];
    } else {
        [self performSegueWithIdentifier:@"needLogin" sender:self];
    }
}
于 2013-06-27T16:28:16.493 に答える
0

がログインしているかログアウトしているかを確認する方法を知っていると思います。
これを試してください:

if (loggedIn) {
    [self performSegueWithIdentifier:@"GoToViewController1" sender:self];
} else if (loggeOut) {
    // Segue to Login viewController 
    [self performSegueWithIdentifier:@"GoToLoginViewController" sender:self];
}

注:ストイボードでは、セグエが可能な UIButton やその他のオブジェクトからではなく、viewController からのみセグエを作成する必要があります。

于 2013-06-27T16:28:59.130 に答える