1

私の iPad プロジェクトは、マスター/詳細ビュー ベースです。詳細ビューのツールバーにはボタンがあり、ユーザーがボタンをタップすると、ポップオーバー ビューがポップアップして 4 つのボタンが (メニューとして) 表示されます。3 つのボタンのアクションは次のようになります (3 つのボタンは 3 つの異なるモデル フォーム シートを示しています)。

- (void) showOnlineSgf
{
    NSLog(@"showOnlineSgf");
    TGOOnlineSgfViewController *dlg =
    [[TGOOnlineSgfViewController alloc] initWithNibName:@"TGOOnlineSgfViewController"
                                                 bundle:nil];
    UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:dlg];

    [nav setModalPresentationStyle:UIModalPresentationFormSheet];
    [self presentViewController:nav animated:YES completion:nil];
    dlg = nil;
    nav = nil;
}

もう 1 つのボタンのアクションは、MFMailComposeViewController を表示することです。コードは次のようなものです。

- (void) emailCurrentGame
{
    NSLog(@"email current game");
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;
    [self presentModalViewController:picker animated:YES];
    picker = nil;
}

奇妙な動作は、ボタンをタップすると showOnlineSgf() を実行する必要があるのに、emailCurrentGame() が実際に実行されることです。showOnlineSgf() にブレークポイントを設定するとヒットし、段階的に showOnlineSgf() 内の各ステートメントが実行されます。しかし、画面上の結果は、MFMainComposeViewController が表示されることです。

この質問に答えるのが難しいことはわかっています。どんなアイデアでも大歓迎です。

4

2 に答える 2

1

UIButtonそのトリガーのコンセント接続を確認してくださいshowOnlineSgf。ほとんどの場合UIButton、Interface Builder で をコピーして貼り付けます。これにより、割り当てられたアクションもコピーされます。次に、他のアクションを接続した結果、UIButton2 つのアクションができました。

この問題を解決するには、UIButtonそのトリガーshowOnlineSgfemailCurrentGameアクションから切り離すだけです。

于 2012-12-19T14:22:01.790 に答える
1

インターフェイスビルダーに既に接続されているボタンをコピーして貼り付けたようです。ボタンに複数のアクションが割り当てられているかどうかを確認します。

于 2012-12-19T14:24:53.317 に答える