segueForUnwindingToViewController выдает исключение для неправильного родительского контроллера представления

#ios #iphone #objective-c #segue #uistoryboardsegue

#iOS #iPhone #objective-c #segue #uistoryboardsegue

Вопрос:

Я пытаюсь запустить пользовательский переход для перехода unwind. Существует общий навигационный контроллер и два подвида ( ViewA и ViewB ). Я пытаюсь вернуться между ними со следующим кодом (запускается с помощью кнопки и обратного перехода раскадровки):

 // XXXNavigationController.h

- (UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)
toViewController fromViewController:(UIViewController *)
fromViewController identifier:(NSString *)identifier {
    UIViewController *controller = self.topViewController;
    return [controller segueForUnwindingToViewController:toViewController
                                      fromViewController:fromViewController
                                              identifier:identifier];
}

// XXXViewBController.h (in a reverse segue, going ViewB -> ViewA)

- (UIStoryboardSegue *)
segueForUnwindingToViewController:(UIViewController *)toViewController 
fromViewController:(UIViewController *)fromViewController 
identifier:(NSString *)identifier
{
    XXXReverseZoomSegue *segue = [[XXXReverseZoomSegue alloc] 
                                 initWithIdentifier:identifier 
                                             source:fromViewController 
                                        destination:toViewController];
    return segue;
}
 

В настоящее время это приводит к следующему исключению:

 *** Terminating app due to uncaught exception 
'UIViewControllerHierarchyInconsistency', reason: 
'child view controller:<XXXViewAController: 0x14c5119e0> 
 should have parent view controller:<XXXViewBController: 0x15000b400>
 but actual parent is:<XXXNavigationController: 0x14c5116a0>'
 

Как я могу правильно настроить это, чтобы я мог заставить работать обратный переход?

Комментарии:

1. Знаете ли вы, нашли ли вы решение этой проблемы? У меня такая же настройка, и я не получаю исключение, но оно срабатывает segueForUnwindingToViewController , но не разматывается.

2. Попробуйте это: toViewController.parentViewController