Get button pressed id on Swift via sender

You can set a tag in the storyboard for each of the buttons. Then you can identify them this way:

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

EDIT: For more readability you can define an enum with values that correspond to the selected tag. So if you set tags like 0, 1, 2 for your buttons, above your class declaration you can do something like this:

enum SelectedButtonTag: Int {
    case First
    case Second
    case Third
}

And then instead of handling hardcoded values you will have:

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

Leave a Comment