Reputation: 41
I'm trying to pass a text from a text field in a view controller to a label in a second view controller via prepareForSegue
, but it's not working.
My code so far:
class ViewController: UIViewController {
@IBOutlet weak var inputTextField: UITextField!
// use of override func prepare gives an error
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var DestViewController: secondViewController = segue.destination as! secondViewController
DestViewController.labelText = inputTextField.text!
}
}
class SecondViewController: UIViewController {
@IBOutlet weak var receivedTextLabel: UILabel!
var labelText = "ss"
override func viewDidLoad() {
super.viewDidLoad()
receivedTextLabel.text! = labelText
}
}
If I use override
for prepareForSegue
, I get the following error:
Method does not override any method from it's superclass
Without overriding, it builds, but after performing the segue from the button to SecondViewController
, the label's text doesn't get updated.
Upvotes: 0
Views: 2209
Reputation: 58029
The method changed back in Swift 3 from prepareForSegue(segue:sender)
to prepare(for:sender:)
. Replace it with the following:
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
Upvotes: 4