我已经为特定的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。有谁看到我做错了什么?
答案 0 :(得分:4)
添加目标,
myButton.addTarget(self, action: #selector(YourControllerName.buttonTapped(_:)), for: .touchUpInside)
然后改变你的功能,
func buttonTapped(sender : UIButton){
....
}
希望这会对你有所帮助。