web-dev-qa-db-ja.com

条件付きでセグエに続く

私のアプリにはログイン画面があります。ただし、ログインボタンから次の(テーブル)ビューコントローラにセグエを接続する場合、ログイン情報として何を入力しても、いつでも続行できます。ログイン情報を確認して、セグエを実行するかどうかを決定するにはどうすればよいですか?条件付きでセグエを実行するにはどうすればよいですか?

セグエでの作業中には、これを達成することは可能ですか?プログラムで実行できることはわかっていますが、ナビゲーションバーが必要なため、別のナビゲーションコントローラーが必要です。

20
mmvie

ログインボタンなどをいくつかのIBActionコードに接続し、ログインを続行するかどうかを決定してから、(必要な場合は)performSegueWithIdentifier:を使用して新しいビューに移行できます。

このメソッドの使用について別の投稿を書いたところです ここ

20
Simon

IOS 6では、UIViewControllerのshouldPerformSegueWithIdentifier:sender:メソッドは、手動でセグエをトリガーすることなくこの問題を解決します。

10
Nikolay Mamaev
  1. 「ログイン」から「ダッシュボード」と言う手動セグエを作成する
  2. セグエ識別子の名前を付けます。例: 「showDashboard」
  3. IBActionの「次へ」ボタンを配線します
  4. すべての制約が満たされたら、識別子を使用してsegueを手動で呼び出します。

- (IBAction)nextButtonPressed:(id)sender
{
    if ([self hasAllRequiredFields]) {
        [self performSegueWithIdentifier:@"showDashboard" sender:self];
    } 
}
3
Ramesh

これは遅れていますが、セグエが「有効」になるまで、セグエをトリガーしているものは何でもsetEnabled:NOにするのが最善です。これにより、セグエロジックがビューロジックから分離されます。

2
Kaolin Fire