我已经看到了,这是一个常见的问题,但我找不到自己的任何解决方案.
这是代码:
class ButtonViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(button)
}
func exmp(sender: UIButton) {
print("hello world")
}
let button: UIButton = {
let but = UIButton(frame: CGRect(x: 33, y: 33, width: 33, height: 33))
but.setTitle("-", for: .normal)
but.titleLabel?.textColor = UIColor.white
but.layer.cornerRadius = 10
but.backgroundColor = UIColor.red
but.addTarget(ButtonViewController.self, action: #selector(ButtonViewController.exmp(sender:)), for: .touchDown)
return but
}
}
Run Code Online (Sandbox Code Playgroud)
问题: 出现红色按钮,但是当我点击它时,我收到"无法识别的选择器发送到课堂"错误.
任何帮助表示赞赏!谢谢.
您正在将未识别的选择器发送到类,因为您设置了错误的目标.目标应该是self而不是ButtonViewController.self:
but.addTarget(self, action: #selector(ButtonViewController.exmp(sender:)), for: .touchDown)
Run Code Online (Sandbox Code Playgroud)
你的#selector作品,但对于Swift 3,你应该把动作写成func exmp(_ sender: UIButton) {选择器#selector(exmp(_:)).注意:无论您是否重写exmp,您都可以简化选择器#selector(exmp).
| 归档时间: |
|
| 查看次数: |
2199 次 |
| 最近记录: |