My FlipsideViewController’s “done” button is not working (no crash, but not dismissing the view either). Here’s the code:
In FlipSideViewController.h
@class FlipsideViewController;
@protocol FlipsideViewControllerDelegate
- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller;
@end
@interface FlipsideViewController : UIViewController
@property (weak, nonatomic) id <FlipsideViewControllerDelegate> delegate;
- (IBAction)done:(id)sender;
@end
In FlipSideViewController.m
- (IBAction)done:(id)sender
{
// an NSLog statement that is here is logging properly
[self.delegate flipsideViewControllerDidFinish:self];
}
In MainViewController.h
@interface FifthViewController : UIViewController <FlipsideViewControllerDelegate>
...
In MainViewController.m
- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller
{
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showAlternate"]) {
[[segue destinationViewController] setDelegate:self];
}
}
By the way, this is a tabbed application, so I’m think that might have something to do with it. Any suggestions would be appreciated. Thank you.
I’ve found the problem. If you look in the question code, under MainViewController.m, it is imperative that you set the segue identifier in your storyboard file, as well as in code:
Thank you, sergio, for your help.