【发布时间】:2017-04-08 16:54:17
【问题描述】:
我正在尝试将UIBarButtonItem 作为参数传递,
但我收到以下错误:
“#selector”的参数不引用“@objc”方法、属性、 或初始化器
@objc func barClicked( sender: AnyObject) {
}
override func viewDidLoad() {
super.viewDidLoad()
let bar: UIToolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 50))
bar.barStyle = UIBarStyle.default
bar.items = [
UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil),
UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(barClicked(sender: bar.items[0])))]
bar.sizeToFit()
}
也试过#selector(barClicked(sender: bar.items[0] as AnyObject
谢谢
【问题讨论】:
-
请查看“相关”部分,这已被反复询问和回答。您不能在选择器中传递参数。
-
仅供参考 - 按钮将作为参数。您无需自己指定。
-
@MartinR 谢谢,有没有办法解决这个问题?
-
您是否阅读了“相关”问题及其答案?
-
您应该阅读
UIControl的文档和“目标-动作机制”部分。它也适用于UIBarButtonItem。
标签: swift selector uibarbuttonitem