「完了」(システム ボタン) というバー ボタン項目があり、このボタンからモーダル ビュー コントローラーをプッシュするセグエがあります。モーダル VC がプッシュされる前に空にできないデータ フィールドがいくつかあります。だから私は IBAction を完了ボタンに添付しています。IBAction メソッドでは、ユーザーが「完了」ボタンを押してデータが空の場合、アラートビューが表示されます。そうでない場合は、performSegueWithIdentifier を呼び出してモーダル ビュー コントローラーをプッシュします。
アプリがシミュレーター モードで実行されている場合、[DOne] ボタンを押すと、データが空であってもモーダル VC がプッシュされます。IBAction メソッドが呼び出されません。しかし、セグエを削除してからアプリを実行すると、アラート ビューに正しいメッセージが表示されます。
Bar Button アイテムに IBAction/StoryBoard Segue の両方を設定することはできませんか? 以下は私のコードです。「NewRelationDoneToEditRelationVCSegue」という識別子を使用して、ストーリーボードにモーダルな種類のセグエを作成しました。
- (IBAction)newViewControllerDoneButtonPressed:(id)sender
{
if (self.groupSelected == NULL)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Select Group" message: @"Please Select a Group for your Contact" delegate: self cancelButtonTitle:@"OK" otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStyleDefault;
[alert show];
}
else
{
NSLog(@"test");
[self performSegueWithIdentifier:@"NewRelationDoneToEditRelationVCSegue" sender:self];
}