0

我在以编程方式添加的自定义单元格中有一个 UIButton:

UIButton *tag = [[UIButton alloc] init];
[tag addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];

这是我的按钮处理程序:

-(void)buttonClicked:(id)sender
{
    UIButton *clickedButton= (UIButton*)sender;
    NSLog(@"Button tapped!", nil);
    self.tagTapped = YES;
    self.tagSelected = clickedButton.titleLabel.text;
}

按钮点击已注册,但我的主视图控制器中的 didSelectRowAtIndexPath 没有被调用。点击单元格中的其他位置有效,但点击按钮不会调用该方法。有任何想法吗?

4

1 回答 1

1

点击单元格中的其他位置有效,但点击按钮不会调用方法 (didSelectRowAtIndexPath)。

这是设计使然。大多数人使用 UIButtons 来做一些不同于用户选择行时发生的事情。例如,在 Apple 的 Phone 应用程序中浏览语音邮件时,点击该行会启用 Call Back & Delete 按钮,同时点击该行的蓝色 AccessoryDe​​tailDisclosureButton 会显示一个新的 ViewController,其中显示语音邮件的日期和电话号码。

于 2013-02-11T23:28:41.300 回答