#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