首页 > 解决方案 > '#selector' 的参数不引用 Swift 按钮目标中的 '@objc' 方法、属性或初始化程序

问题描述

我想用选择器将参数发送到我的详细信息函数,但它不起作用,我该怎么做?

btnDetails.addTarget(self, action:#selector(goToDetailsFromMap(mid:id)), for: .touchUpInside)

标签: swiftfunctionuibuttonselector

解决方案


您可以创建自定义按钮:

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
    }
}

推荐阅读