【发布时间】:2021-10-13 19:40:28
【问题描述】:
我想为我的 VC 添加动态数量的按钮。所以我正在循环我的按钮数组模型并实例化 UIButtons。问题在于向这些按钮添加目标。我想在添加目标时将一个字符串传递给选择器,但是 Xcode 编译器不允许我这样做
“#selector”的参数不引用“@objc”方法、属性或初始化程序
@objc func didTapOnButton(url: String) { }
let button = UIButton()
button.addTarget(self, action: #selector(didTapOnButton(url: "Random string which is different for every bbutton ")), for: .touchUpInside)
除了使用自定义 UIButton 之外还有其他解决方案吗
【问题讨论】:
-
这能回答你的问题吗? Passing arguments to selector in Swift
-
我认为您误解了选择器的工作原理。您没有传递带有某个值的参数,而是传递了函数的签名,其中可以包括选择器。请参阅我发布的链接,在那里的最佳答案中有很好的解释。