首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何传递多参数addTarget?

如何传递多参数addTarget?
EN

Stack Overflow用户
提问于 2016-07-08 06:41:23
回答 1查看 1.6K关注 0票数 1

我需要传递两个参数。如何经过addTarget action?如果可能的话,我需要执行哪些更改?

这是我目前的密码。

代码语言:javascript
复制
button.tag = numbers[index];
button.addTarget(self, action: #selector(ViewController.buttonClicked(_:)), forControlEvents:UIControlEvents.TouchUpInside)

func buttonClicked(sender: UIButton){
     print(sender.tag)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-08 07:38:36

如果您需要一个以上的周边通行证,那么您可以使用objc_setAssociatedObject

任何东西都会被传递,比如字典,数组,字符串,Int.

代码语言:javascript
复制
import ObjectiveC

extension UIButton {
private struct AssociatedKeys {
    static var WithValue = "KeyValue"
}

@IBInspectable var withValue: String? {
    get {
        return objc_getAssociatedObject(self, &AssociatedKeys.WithValue) as? String
    }
    set {
        if let newValue = newValue {
            objc_setAssociatedObject(
                self,
                &AssociatedKeys.WithValue,
                newValue as NSString?,
                objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN
            )
        }
    }
}
}

您需要使用上述分机:-

导入ObjectiveC

代码语言:javascript
复制
button.tag = numbers[index];
    button.addTarget(self, action: #selector(ViewController.buttonClicked(_:)), forControlEvents:UIControlEvents.TouchUpInside)

    //set velue
   button.withVelue = "1,2,3,4"

func buttonClicked(sender: UIButton){

     print(sender.withVelue)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38260390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档