在Swift中将参数附加到button.addTarget动作

发布于 2021-01-31 23:54:18

我试图将一个额外的参数传递给buttonClicked动作,但是无法计算出Swift中的语法。

button.addTarget(self, action: "buttonClicked:", forControlEvents: UIControlEvents.TouchUpInside)

任何我的buttonClicked方法:

func buttonClicked(sender:UIButton)
{
    println("hello")
}

任何想法吗?

谢谢你的帮助。

关注者
0
被浏览
489
1 个回答
  • 面试哥
    面试哥 2021-01-31
    为面试而生,有面试问题,就找面试哥。

    您无法在中传递自定义参数addTarget:。另一种方法是设置tagbutton 的属性并根据标签进行工作。

    button.tag = 5
    button.addTarget(self, action: "buttonClicked:", 
        forControlEvents: UIControlEvents.TouchUpInside)
    

    或对于 Swift 2.2 及更高版本:

    button.tag = 5
    button.addTarget(self,action:#selector(buttonClicked),
        forControlEvents:.TouchUpInside)
    

    现在基于tag属性做逻辑

    @objc func buttonClicked(sender:UIButton)
    {
        if(sender.tag == 5){
    
            var abc = "argOne" //Do something for tag 5
        }
        print("hello")
    }
    


推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看