Mis*_*cha 29 parentviewcontroller addsubview ios childviewcontroller container-view
我想添加一个tableViewController作为containerViewController的子视图控制器(如下所示).根据Apple的View Controller Programming Guide,我可以通过我的containerViewController中的以下代码行实现这一点:
[self addChildViewController:tableViewController];
[self.view addSubview:tableViewController.view];
[tableViewController didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)
事实上,这很好.现在的问题是我不想将tableViewController的视图添加为containerViewController的根视图的子视图.相反,我想将它添加为containerView的子视图(参见图像),它本身是containerViewController的根视图的子视图.所以我改变了上面的代码如下:
[self addChildViewController:tableViewController];
[self.contentView addSubview:tableViewController.view];
[tableViewController didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)
现在,当我启动应用程序时,它立即崩溃并出现此错误:
由于未捕获的异常'UIViewControllerHierarchyInconsistency'而终止应用程序,原因:'子视图控制器:应该有父视图控制器:但实际的父级是:'
这里有什么问题?是不是可以将childViewController的视图添加到其containerViewController 的特定子视图中?或者如何在视图控制器层次结构中没有错误的情况下实现此目的?

Anu*_*das 49
将viewController添加到哪个视图并不重要.如果将viewController的视图添加到另一个viewController,则需要正确设置它.
tableViewController.view.frame = self.contentView.bounds;
[self.contentView addSubview:tableViewController.view];
/*Calling the addChildViewController: method also calls
the child’s willMoveToParentViewController: method automatically */
[self addChildViewController:tableViewController];
[tableViewController didMoveToParentViewController:self];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59578 次 |
| 最近记录: |