经过与一些iOS开发者的确认,目前还不能这样做。
但是有一个替代方案。您可以在操作方法中接收发送方对象。您可以向发送方类添加任何属性,并在操作方法中接收它们。
例如:
第一个方法
let button = UIBarButtonItem(title: "Run",
style: .Plain,
target: self,
action:
button.tag = 1
And you can receive it like this
func run(sender: UIBarButtonItem) {
let passedInteger = sender.tag
}
但是,它只能在传递单个整数参数时起作用。如果您想传递任意数据类型的多个参数,请按照以下方式执行- > 查看第二种方法
第二种方法
子类化UIBarButtonItem
class MyBarButtonItem: UIBarButtonItem {
var passedParameter: String?
}
然后像这样收到它
let button = MyBarButtonItem(title: "Run",
style: .Plain,
target: self,
action: #selector(run(sender:)))
button.passedParameter = "John Doe"
func run(sender: MyBarButtonItem) {
let parameter = sender.passedParameter
}