Create a segue from a button or other control on the source scene to the destination scene. (If you’re presenting the new screen modally, then often the destination will be a Navigation Controller.)
Give the segue a unique Identifier. (It only has to be unique in the source scene; different scenes can use the same identifier.)
Create a delegate protocol for the destination scene.
Call the delegate methods from the Cancel and Done buttons, and at any other point your destination scene needs to communicate with the source scene.
Make the source scene implement the delegate protocol. It should dismiss the destination view controller when Cancel or Done is pressed.
Implement prepareForSegue in the source view controller and do destination.delegate = self;.