我的ipad项目是基于主视图的视图。在详细视图的工具栏上有一个按钮,当用户点击按钮时,它会弹出一个弹出视图以显示四个按钮(如菜单)。按钮的三个动作如下所示(三个按钮显示三个不同的模型表单):
- (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;
}
另一个按钮的操作是显示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出现。
我知道这个问题很难回答。任何想法都表示赞赏。
答案 0 :(得分:1)
检查触发UIButton
的{{1}}的出口连接。您最有可能复制粘贴在Interface Builder中的showOnlineSgf
,这会导致它复制其指定的操作。然后,您已关联其他操作,导致UIButton
有两个操作。
要解决此问题,只需断开UIButton
触发UIButton
showOnlineSgf
行动的emailCurrentGame
。
答案 1 :(得分:1)
听起来像是在界面构建器中复制粘贴已连接的按钮。检查按钮是否分配了多个操作。