1

「完了」(システム ボタン) というバー ボタン項目があり、このボタンからモーダル ビュー コントローラーをプッシュするセグエがあります。モーダル 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];
}
4

2 に答える 2

2

問題は解決しました。「完了」ボタンからモーダルView Controllerへのセグエを削除しました。代わりに、元のビュー コントローラーのベースにある左端の小さなアイコンからモーダル ビュー コントローラーに CTRL キーを押しながらドラッグして、セグエを作成しました。基本的に手動のセグエを作成しました。動作しているため、バー ボタン アイテムに IBAction とセグエの両方をリンクすることはできません。どちらかです。IBAction を実行して別のビュー コントローラーをプッシュするには、手動のセグエを作成する必要があります。[この質問] も参照できます ( 「NavigationViewController のバー ボタン項目が IBAction をトリガーしない理由

于 2013-02-06T18:40:38.903 に答える
1

あなたのgroupSelected boolがNULLに等しくないという理由だけで、私はそれを想定しています。yes に初期化されていない限り、ビューが読み込まれると、ブール値のデフォルトは no になります。if ステートメントを変更して、no に等しいかどうかを確認します。次に、誰かがあなたのものの1つをクリックしたときに、それをyesに設定します. 行ってもいい。

于 2013-02-06T00:51:53.897 に答える