How to get the current Title of a button in Swift 3.0 , ios using sender.titleForState(.Normal)!

ios, swift3, title, uibutton

Solution

Because parameter sender is in type `Any` instead of `UIButton`. Change the method signature to:

@IBAction func buttonAction(_ sender: UIButton) {
  if let buttonTitle = sender.title(for: .normal) {
    print(buttonTitle)
  }
}

and you should be good to go.

Problem

I tried to get the `title` of a `button` in swift like below. ``` @IBAction func buttonAction(_ sender: Any) { let buttonTitle = sender.titleForState(.Normal)! } ``` but it didn't work,even it doesn't give any `hint` when we press `.` after the sender. so what is the correct way of doing this in swift 3.0 Or else if we create an `IBOutlet` and then we use its `currentTitle`, it works fine like below. Why we cannot get it with `sender.` for above ``` @IBOutlet var thebutton: UIButton! @IBAction func buttonAction(_ sender: Any) { let buttonTitle = thebutton.currentTitle! print(buttonTitle) } ```

Original source