、いいえ、あなたはまだこれを行うことはできません。
しかし、別の方法があります。アクションメソッドで送信者オブジェクトを受け取ることができます。任意のプロパティを送信側クラスに追加できます。そしてそれを行動方法で受け取る。例えば
:
まずアプローチ
let button = UIBarButtonItem(title: "Run",
style: .Plain,
target: self,
action: #selector(run(_:)))
button.tag = 1
そして、あなたはこの
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) {
// now you have the parameter
let parameter = sender.passedParameter
}
方法です。 – xoogler