Я хочу добавить tableViewController в качестве контроллера дочернего представления containerViewController (показано ниже). Согласно Apple Просмотр руководства по программированию контроллера, я могу добиться этого следующими строками кода внутри моего контейнераViewController:
[self addChildViewController:tableViewController];
[self.view addSubview:tableViewController.view];
[tableViewController didMoveToParentViewController:self];
На самом деле это прекрасно работает. Теперь проблема заключается в том, что я не хочу добавлять представление tableViewController в качестве подпрограммы корневого вида containerViewController. Вместо этого я хочу добавить его в качестве подзапроса контейнера (см. Изображение), который сам является подвидью корневого представления containerViewController. Поэтому я изменил приведенный выше код следующим образом:
[self addChildViewController:tableViewController];
[self.contentView addSubview:tableViewController.view];
[tableViewController didMoveToParentViewController:self];
Теперь, когда я запускаю приложение, он немедленно сбрасывается с этой ошибкой:
Завершение приложения из-за неперехваченного исключения "UIViewControllerHierarchyInconsistency", причина: "контроллер дочернего представления: должен иметь родительский контроллер представления, но фактический родитель:"
В чем проблема? Невозможно ли добавить представление childViewController к определенному представлению sub своего контейнераViewController? Или как я могу достичь этого без ошибки в иерархии диспетчера представлений?