在Swift中将数据传递给选择器

时间:2019-06-14 20:08:38

标签: ios swift uibutton

我为UIButton设置了以下目标。

button.addTarget(self, action: #selector(self.buttonAction), for: .touchUpInside)

我也有这种方法:

@objc func buttonAction(sender: UIButton!, info: String) {
    let btnsendtag:UIButton = sender
    //btnsendtag.isSelected = true
    //let buttonTitle = btnsendtag.titleLabel!.text as! String
    print("BUTTON TAPPED \(info)")

    btnsendtag.isSelected = !btnsendtag.isSelected
    if btnsendtag.isSelected {
        categoryArrayList.append(info)
    } else {
        categoryArrayList = categoryArrayList.filter() { $0 != info }
    }
}

如何将信息发送到此选择器?

编辑:

需要的理由:我有一个字符串,我们只说“ this @ that”。但是,我希望按钮仅显示单词“ that”。但是,当我单击按钮时,我需要在数组中添加“ this @ that”(就像您在函数中看到的那样)。

谢谢

1 个答案:

答案 0 :(得分:1)

您不能将值传递给UIButton的选择器

button.addTarget(self, action: #selector(self.buttonAction), for: .touchUpInside)

从类的子类中访问该值,并将该按钮附加所需的信息,然后进行操作,如

@objc func buttonAction(sender: CustomBt)