我想添加一个 tableViewController 作为 containerViewController 的子视图控制器(如下所示)。根据 Apple 的View Controller Programming Guide,我可以通过 containerViewController 中的以下代码行来实现这一点:
[self addChildViewController:tableViewController];
[self.view addSubview:tableViewController.view];
[tableViewController didMoveToParentViewController:self];
事实上,这很好用。现在的问题是我不想将 tableViewController 的视图添加为 containerViewController 根视图的子视图。相反,我想将它添加为 containerView 的子视图(见图),它本身就是 containerViewController 根视图的子视图。所以我把上面的代码改成如下:
[self addChildViewController:tableViewController];
[self.contentView addSubview:tableViewController.view];
[tableViewController didMoveToParentViewController:self];
现在,当我启动应用程序时,它会立即崩溃并出现以下错误:
由于未捕获的异常“UIViewControllerHierarchyInconsistency”而终止应用程序,原因:“子视图控制器:应该有父视图控制器:但实际父视图是:”
这里有什么问题?不能将 childViewController 的视图添加到其 containerViewController 的特定子视图中吗?或者我怎样才能在视图控制器层次结构中没有错误的情况下实现这一点?