我正在尝试向buttonClicked操作传递一个额外的参数,但无法确定Swift中的语法应该是什么。
button.addTarget(self, action: "buttonClicked:", forControlEvents: UIControlEvents.TouchUpInside)
任何my buttonClicked方法:
func buttonClicked(sender:UIButton)
{
println("hello")
}
有人有什么想法吗?
谢谢你的帮助。
发布于 2015-10-08 10:09:28
如果要向buttonClicked方法发送其他参数,例如indexPath或urlString,则可以将UIButton子类化:
class SubclassedUIButton: UIButton {
var indexPath: Int?
var urlString: String?
}
确保在标识检查器中将按钮的类更改为subclassedUIButton。您可以使用sender.indexPath
或sender.urlString
访问buttonClicked方法中的参数。
注意:如果您的按钮位于单元格内,则可以在cellForRowAtIndexPath方法(按钮的创建位置)中设置这些附加参数的值。
发布于 2016-12-27 20:30:53
对于Swift 3.0,您可以使用以下命令
button.addTarget(self, action: #selector(YourViewController.YourMethodName(_:)), for:.touchUpInside)
func YourMethodName(_ sender : UIButton) {
print(sender.tag)
}
发布于 2019-04-18 07:55:49
Swift 5.0代码
我使用theButton.tag,但如果我有很多类型的选项,它是非常长的切换情况。
theButton.addTarget(self, action: #selector(theFunc), for: .touchUpInside)
theButton.frame.name = "myParameter"
。
@objc func theFunc(sender:UIButton){
print(sender.frame.name)
}
https://stackoverflow.com/questions/24814646
复制相似问题