diff --git a/MMDrawerController/MMDrawerController.m b/MMDrawerController/MMDrawerController.m index 480145c4..f67a4e75 100644 --- a/MMDrawerController/MMDrawerController.m +++ b/MMDrawerController/MMDrawerController.m @@ -674,6 +674,30 @@ -(BOOL)automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers{ return NO; } +- (UIViewController *)viewControllerForUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender +{ + NSMutableArray *childViewControllersByPriority = [NSMutableArray arrayWithObject:self.centerViewController]; + + if (self.leftDrawerViewController) { + [childViewControllersByPriority addObject:self.leftDrawerViewController]; + } + if (self.rightDrawerViewController) { + [childViewControllersByPriority addObject:self.rightDrawerViewController]; + } + + for (UIViewController *childViewController in childViewControllersByPriority) { + UIViewController *unwindViewController = [childViewController viewControllerForUnwindSegueAction:action + fromViewController:fromViewController + withSender:sender]; + + if (unwindViewController) { + return unwindViewController; + } + } + + return [super viewControllerForUnwindSegueAction:action fromViewController:fromViewController withSender:sender]; +} + #pragma mark - View Lifecycle - (void)viewDidLoad {