'#selector'的参数不引用Swift按钮目标中的'@objc'方法,属性或初始化程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了'#selector'的参数不引用Swift按钮目标中的'@objc'方法,属性或初始化程序相关的知识,希望对你有一定的参考价值。

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

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

使用swift 5.0使用代码向按钮添加选择器

myButton.addTarget(self, action:#selector(myButtonTapped), for: .touchUpInside)

函数声明

 @objc func myButtonTapped() {
      //do stuff here
    }
另一答案

您可以创建自定义按钮:

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

以上是关于'#selector'的参数不引用Swift按钮目标中的'@objc'方法,属性或初始化程序的主要内容,如果未能解决你的问题,请参考以下文章

'#selector'的参数不是指'@objc'方法,属性或初始值设定项

scrapy用xpath获取内容后想用 '_root'得到'Selector'的HtmlElement对象,为啥行不通?

错误:对类型为'const ItemInstance'的引用无法绑定到类型为'void'的右值

将自定义参数传递给 uibutton #selector swift 3

最近在自学python girlphoto_urls = selector.xpath('//div/a/img/@src')这句是啥意思?大神

CSS3