Frank Schmitt Frank Schmitt - 1 year ago 145
Swift Question

prepare(for:sender:) not getting called

I downloaded Apple's MyLife sample project and attempted to build and run it using Xcode 8 beta 6.

There are two places where a view controller has implemented the

call to do stuff before a storyboard segue is performed.

override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {

That line has an error saying "Method does not override any method from its superclass".

If I remove the override, the app builds but the method isn't called when it should be.

Answer Source

The method signature has changed. sender is now Any? instead of AnyObject?

override func prepare(for segue: UIStoryboardSegue, sender: Any?)

This is to coincide with the changes to how Swift is bridged with obj-c, described here under "New in Xcode 8 beta 6 - Swift Compiler"

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download