私のアプリにはログイン画面があります。ただし、ログインボタンから次の(テーブル)ビューコントローラにセグエを接続する場合、ログイン情報として何を入力しても、いつでも続行できます。ログイン情報を確認して、セグエを実行するかどうかを決定するにはどうすればよいですか?条件付きでセグエを実行するにはどうすればよいですか?
セグエでの作業中には、これを達成することは可能ですか?プログラムで実行できることはわかっていますが、ナビゲーションバーが必要なため、別のナビゲーションコントローラーが必要です。
ログインボタンなどをいくつかのIBActionコードに接続し、ログインを続行するかどうかを決定してから、(必要な場合は)performSegueWithIdentifier:
を使用して新しいビューに移行できます。
このメソッドの使用について別の投稿を書いたところです ここ 。
IOS 6では、UIViewControllerのshouldPerformSegueWithIdentifier:sender:
メソッドは、手動でセグエをトリガーすることなくこの問題を解決します。
- (IBAction)nextButtonPressed:(id)sender
{
if ([self hasAllRequiredFields]) {
[self performSegueWithIdentifier:@"showDashboard" sender:self];
}
}
これは遅れていますが、セグエが「有効」になるまで、セグエをトリガーしているものは何でもsetEnabled:NOにするのが最善です。これにより、セグエロジックがビューロジックから分離されます。