具有多个参数的按钮操作

时间:2016-10-03 14:02:14

标签: ios swift uibutton

我正在使用swift。我是这个视图控制器:

enter image description here

在1.1.1至1.2.6的图片中,所有都是uibutton。这个按钮以编程方式创建。现在在每个按钮上单击我需要传递2个参数。如果我考虑 1.1.1 Overflater ,那么我需要传递&#34; 1.1.1&#34; &#34; Overflater&#34; < / strong>作为参数。我试过如下: -

 ov_button.tag = "1.\(i).1"
 ov_button.addTarget(self, action: #selector("i3Vatrom.romBeskrivelse:")
, forControlEvents: UIControlEvents.TouchUpInside)

但它没有用。不知道怎么做....

3 个答案:

答案 0 :(得分:0)

我认为,如果您未使用UITableView,请使用UITableView,使用UITableView并使用sectionrow 标记属性,用于管理按钮。 didSelectRowAtIndexPath功能用于按钮点击。

答案 1 :(得分:0)

您无法将任何内容传递给动作处理函数。动作处理函数自动接收发送者(这里是按钮)作为参数 - 这就是全部。因此,诀窍是建立你想要传递给按钮对象本身的信息的知识,因为这将是传递的内容!在您的情况下,看起来您可以只为正常状态要求按钮title并将其解析为"1.1.1""Overflater"

答案 2 :(得分:-1)

经过努力和思考之后,我找到了一个简单的解决方案。

按钮添加目标代码: -

ov_button.addTarget(self, action: #selector(i3Vatrom.romBeskrivelse), forControlEvents: UIControlEvents.TouchUpInside)

我使用了以下功能: -

func romBeskrivelse(sender:UIButton!) {

    let title = sender.titleLabel!.text!
    let titleArr = title.characters.split{$0 == " "}.map(String.init)
    print(titleArr) // print ["1.2.1", "Overflater"]

}

这就是为什么我认为我必须发布答案。可能这会对其他人有所帮助。