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