iOS 6 - can i return data when i unwind a segue?

Mark Tyers picture Mark Tyers · Oct 23, 2012 · Viewed 17.6k times · Source

I have created a simple unwind segue using the storyboard tools. I have created the following event handler in the view I want to unwind to:

-(IBAction)quitQuiz:(UIStoryboardSegue *)segue {
    NSLog(@"SEGUE unwind");
}

This fires correctly and unwinds the segue (the message gets logged).

When the user quits the quiz I would like to pass some data back and have been struggling with how to achieve this. Can anyone advise?

Answer

Mark Tyers picture Mark Tyers · Oct 28, 2012

Thanks Jeff. After watching WWDC video 407 I have a clear solution.

In the view controller that is the target of the unwind you should create a method that takes a single UIStoryboardSegue parameter and returns an IBAction. The UIStoryboardSegue has a method to return the source view controller! Here is the example taken from the video (credit to Apple).

- (IBAction)done:(UIStoryboardSegue *)segue {
    ConfirmationViewController *cc = [segue sourceViewController];
    [self setAccountInfo:[cc accountInfo]];
    [self setShowingSuccessView:YES];
}