解开UINavigationController的Segue

我有一个简单的UINavigationController将UIViewController通过自定义的segue推入堆栈。 然后,我在第一个UIViewController上实现了一个IBAction来执行展开动作,并实现了segueForUnwindingToViewController。 不幸的是,segueForUnwindingToViewController没有被调用(我确认在第一个VC上调用了CanPerformUnwindSegue)。

我还没有看到这种行为的任何简单的例子。 任何人都可以请帮忙? 谢谢。

这是来自NavigationController的根视图控制器的代码。

- (IBAction) unwindFromSegue:(UIStoryboardSegue *)segue { // unwinds back to here //[self performSegueWithIdentifier:@"UnwindToObjectManageSegue" sender:self]; } - (BOOL)canPerformUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender { return YES; } - (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender { return YES; } - (UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)toViewController fromViewController:(UIViewController *)fromViewController identifier:(NSString *)identifier { ObjectManageObjectDetailSegue *segue = [[ObjectManageObjectDetailSegue alloc] initWithIdentifier:identifier source:fromViewController destination:toViewController]; [segue setUnwinding:YES]; return segue; } 

我有同样的问题,我终于find了一个解决scheme: https : //github.com/simonmaddox/CustomUnwindSegue

他也有一个问题,它不被称为。 事实certificate,在UINavigationController中的任何视图控制器不会调用呈现视图控制器,而是调用UINavigationController。 这意味着你必须inheritance那个UINavigationController,并在那里添加那个方法。