swift - '#selector' 的参数不引用 Swift 按钮目标中的 '@objc' 方法、属性或初始化程序
问题描述
我想用选择器将参数发送到我的详细信息函数,但它不起作用,我该怎么做?
btnDetails.addTarget(self, action:#selector(goToDetailsFromMap(mid:id)), for: .touchUpInside)
解决方案
您可以创建自定义按钮:
class CustomButton: UIButton {
var someId: Int?
...
}
然后在你的 viewController
...
btnDetails.someId = ...
btnDetails.addTarget(self, action:#selector(didTapCustomButton(_:)), for: .touchUpInside)
...
@objc func didTapCustomButton(_ sender: CustomButton) {
if let id = sender.someId {
//Do something with id
}
}
推荐阅读
- kotlin - Corda - 包含该软件包的 CorDapp 不止一个
- r - 如果它们重叠,如何更有效地按组在 ggplot2 中绘制点?
- javascript - 如何使用ajax显示/隐藏div?
- javascript - 使用 vue-cli-service electron:build 构建后的电子黑屏
- java - 重新加载 RecyclerView 不会更新项目
- delphi - Delphi Firemonkey 获取 UTC 时间
- javascript - 使用 Js 更改特定样式的属性
- python - Sklearn SVM 在明显线性可分离的数据集上生成错误的边界线
- r - 在 R 中读取 XML 文件并在节点具有不同长度和内容时创建数据框
- python - 如何在 Python 中更改直方图 Y 轴上的值