如何将目标操作添加到UITableViewCell

时间:2016-06-29 06:14:50

标签: ios swift uitableview

我已经为特定的UITableViewCell添加了一个按钮。当我选择按钮时,我遇到了崩溃:

ButtonTapped libc++abi.dylib: terminating with uncaught exception of type NSException

cellForRowAt的开头,我定义了按钮:

let myButton = UIButton(type: .custom)
myButton.frame = CGRect(x: 0, y: 0, width: 20, height: 20)
myButton.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
myButton.tintColor = UIColor.yellow()

对于indexpath.row我按下这样的按钮:

cell.accessoryView = myButton as UIView

动作buttonTapped尝试加载不同的ViewController。

我确认按钮动作有效(该例程被调用)。 例程如下:

func buttonTapped() {
    print("ButtonTapped")

    let myPickerController = self.storyboard?.instantiateViewController(withIdentifier: "picker") as? MyPickerController
    print("1")
    self.present(myPickerController!, animated: true)
    print("2")
}

从日志中可以看出,我确实看到该例程已被调用,但在崩溃之前我没有看到打印值1或2。有谁看到我做错了什么?

1 个答案:

答案 0 :(得分:4)

添加目标,

 myButton.addTarget(self, action: #selector(YourControllerName.buttonTapped(_:)), for: .touchUpInside)

然后改变你的功能,

 func buttonTapped(sender : UIButton){

 ....
 }

希望这会对你有所帮助。