1

我的 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 出现了。

我知道这个问题很难回答。任何想法都值得赞赏。

4

2 回答 2

1

检查您的UIButton触发器的插座连接showOnlineSgf。很可能您UIButton在 Interface Builder 中复制粘贴了您的内容,这会导致它也复制其分配的操作。然后你连接了你的另一个动作,导致你UIButton有两个动作。

要解决此问题,只需断开您UIButton的触发器showOnlineSgfemailCurrentGame操作的连接。

于 2012-12-19T14:22:01.790 回答
1

听起来您在界面构建器中复制粘贴了一个已连接的按钮。检查按钮是否分配了多个操作。

于 2012-12-19T14:24:53.317 回答