Reputation: 57
I am new to swift, and just happen to have Swift 3 released, but apple document still using Swift2 syntax.
Understand that below (Swift2)
@IBOutlet var weak saveButton:UIBarButtonItem!
This method lets you configure a ViewController
before it's presented.
override func prepareForSegue(segue: UIStoryboardSegue, sender:AnyObject?) {
if saveButton === sender { //originally swift 2 can compare
}
Has changed to (Swift3)
override func prepare(for segue: UIStoryboardSegue, sender:Any){
}
Now on swift 3 I cannot check if sender = saveButton
I am very new to Swift, is that I need to cast it like sender as UIBarButtonItem?
Upvotes: 4
Views: 2202
Reputation: 12910
You can also:
1) Select a segue you have created as a connection between a UIBarButtonItem
and a target controller.
2) Name it:
3) Test it:
func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "MyIdentifier" {
// actions
}
}
Upvotes: 0
Reputation: 72460
Try like this inside prepareforsegue
method.
override func prepare(for segue: UIStoryboardSegue, sender:Any){
if let barButton = sender as? UIBarButtonItem {
if saveButton == barButton {
//Do what you want
}
}
}
Upvotes: 10
Reputation: 1139
If you need to cast you just say sender as! UIBarButtonItem
as easy as that.
Upvotes: 0