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

If you want to create 3 buttons with single method then you can do this by following code...Try this

Swift 3
Example :-

override func viewDidLoad()
{
    super.viewDidLoad()
    Button1.tag=1
    Button1.addTarget(self,action:#selector(buttonClicked),
                      for:.touchUpInside)
    Button2.tag=2
    Button2.addTarget(self,action:#selector(buttonClicked),
                      for:.touchUpInside)
    Button3.tag=3
    Button3.addTarget(self,action:#selector(buttonClicked),
                      for:.touchUpInside)

}

func buttonClicked(sender:UIButton)
{
    switch sender.tag
    {
        case 1: print("1")     //when Button1 is clicked...
            break
        case 2: print("2")     //when Button2 is clicked...
            break
        case 3: print("3")     //when Button3 is clicked...
            break
        default: print("Other...")
    }
}

You can create an outlet for your buttons and then implement:

@IBAction func mainButton(sender: UIButton) {
    switch sender {
    case yourbuttonname:
        // do something
    case anotherbuttonname:
        // do something else
    default: println(sender)
    }
}

Swift 4 - 5.1

@IBAction func buttonPressed(_ sender: UIButton) {
        if sender.tag == 1 {
            print("Button 1 is pressed")
        }
}

You have to set tag value to what you need and access it with

sender.tag