私の 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 が表示されることです。
この質問に答えるのが難しいことはわかっています。どんなアイデアでも大歓迎です。