所以我有一个带有3个按钮的 Storyboard ,我只想为所有这3个按钮创建1个 Action 并根据其标签/标识决定要做什么...

有没有办法为每个按钮获取某种标识符?

顺便说一句,它们是图像,因此它们没有标题。

@IBAction func mainButton(sender: UIButton) {
    println(sender)
}

最佳答案

您可以在 Storyboard 中为每个按钮设置tag。然后,您可以通过以下方式识别它们:

@IBAction func mainButton(sender: UIButton) {
    println(sender.tag)
}

编辑:为了提高可读性,您可以定义一个枚举,其值与所选标签相对应。因此,如果您为按钮设置了像012这样的标签,则在类声明上方可以执行以下操作:
enum SelectedButtonTag: Int {
    case First
    case Second
    case Third
}

然后,您将拥有:
@IBAction func mainButton(sender: UIButton) {
    switch sender.tag {
        case SelectedButtonTag.First.rawValue:
            println("do something when first button is tapped")
        case SelectedButtonTag.Second.rawValue:
            println("do something when second button is tapped")
        case SelectedButtonTag.Third.rawValue:
            println("do something when third button is tapped")
        default:
            println("default")
    }
}

关于swift - 通过发件人在Swift上获取按下按钮的ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30046540/

10-11 22:32
查看更多