我试图向buttonClicked操作传递一个额外的参数,但无法计算Swift中的语法应该是什么.

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

任何我的按键方法:

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

有人有什么 idea 吗?

谢谢你的帮助.

推荐答案

不能在addTarget:中传递自定义参数.另一种方法是设置button的tag属性,并基于标记执行操作.

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

Swift相关问答推荐

在 SwiftUI 视图中观察 UIViewRepresentable 的 @State var 变化

如何为我的项目设置生命周期选项?

是否可以限制 ExpressibleByIntegerLiteral struct 的初始值?

减小SF符号的边框宽度

(Swift)混淆了函数内 for-in 循环的返回值和循环后(函数内)的返回值)

自定义碰撞形状出现在错误的位置

为什么我在我的 Swift iOS 应用程序项目中收到 Xcode 中的错误消息无法识别的 Select 器发送到类?

如何将视图添加到多行文本视图的末尾?

无法使用 RealityKit 播放 USDZ 动画

Swiftui 按钮依次显示一组图像

如何确定扩展中的具体类型?

您可以在运行时访问 Picker 元素并更改它们的 colored颜色 吗

判断 Swift 程序是否正在输出到终端

使用 Alamofire 4.0 (Swift 3) 下载文件

在 ViewController 的 UICollectionView 中拉取刷新

swift 3 错误:参数标签 '(_:)' 不匹配任何可用的重载

在 Swift 框架中加载资源(例如故事板)

Swift:如何从函数返回类类型

Swift 2.0 按属性对对象数组进行排序

转换为 swift 3 后,视图控制器中出现奇怪的通用函数