我以编程方式创建了UIButton名称为plusButton和UILabel名称为itemLabel,并为此按钮添加了目标;
plusButton.addTarget(self, action: #selector(plusButtonClicked(itemLabel)), for: UIControlEvents.touchUpInside)
@objc func plusButtonClicked(_ sender : UILabel){
//MY CODE
}
我收到“'#selector'的参数未引用'@objc'方法,属性或初始化程序”错误。当我删除函数中的参数时,没有任何错误。但是,当它是函数中的参数时,我会报错。
答案 0 :(得分:0)
这是错误的:
@objc func plusButtonClicked(_ sender : UILabel)
^^^^^^^
您不能将标签作为按钮点击的参数发送。参数是按钮,您不能更改它。
您无法通过尝试在选择器中更改参数来解决这些规则。选择器没有参数。
您还需要其他方法来找出正确的标签。
答案 1 :(得分:0)
应为:
plusButton.addTarget(self, action: #selector(plusButtonClicked(_ :)), for: UIControlEvents.touchUpInside)
更新它。
答案 2 :(得分:0)
您在代码中使用了错误的选择器。对于您的函数,选择器应写为#selector(plusButtonClicked(_ :)
。
所有代码都应该像这样...
plusButton.addTarget(self, action: #selector(plusButtonClicked(_ :)), for: UIControlEvents.touchUpInside)
@objc func plusButtonClicked(sender:Any) {
let button = sender as? UIButton
// you can do whatever want with button.
}