我有一个以编程方式添加到tableview的UIButton。问题是,当触摸它时,我遇到了发送给实例错误消息的无法识别的选择器。

    UIButton *alertButton = [UIButton buttonWithType:UIButtonTypeInfoDark];
    [alertButton addTarget:self.tableView action:@selector(showAlert:)
          forControlEvents:UIControlEventTouchUpInside];
    alertButton.frame = CGRectMake(220.0, 20.0, 160.0, 40.0);

    [self.tableView addSubview:alertButton];

这是我想在触摸InfoDark UIButton时触发的警报方法:
- (void) showAlert {
        UIAlertView *alert =
         [[UIAlertView alloc] initWithTitle:@"My App"
                                    message: @"Welcome to ******. \n\nSome Message........"
                                   delegate:nil
                          cancelButtonTitle:@"Dismiss"
                          otherButtonTitles:nil];
        [alert show];
        [alert release];
}

谢谢你的帮助。

最佳答案

好的,您有两个问题。
一个是如上所述的选择器问题,但是您真正的问题是:

[alertButton addTarget:self.tableView
                action:@selector(showAlert:)
      forControlEvents:UIControlEventTouchUpInside];

除非您已将UITableView子类化以响应警报,否则这是错误的目标。

您想要将该代码更改为:
[alertButton addTarget:self
                action:@selector(showAlert)
      forControlEvents:UIControlEventTouchUpInside];

关于ios - 无法识别的选择器从UIButton发送到实例错误消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6032725/

10-08 21:25