UIViewControllerHierarchyInconsistency查看控制器异常

时间:2012-10-16 13:57:10

标签: objective-c ios

我正在尝试更改splitViewController中的详细信息视图,当我这样做时,我有UIViewControllerHierarchyInconsistency异常     self.detailView.view = view.view; 我已经控制了xib文件中是否还有其他viewControllers,我也使用了removeFromParentViewController方法,但我有同样的例外。 该错误仅适用于iOS 6,但不适用于iOS 5中的iPad模拟器。

1 个答案:

答案 0 :(得分:0)

  

由于未捕获的异常'UIViewControllerHierarchyInconsistency'而终止应用程序,原因:'视图一次只能与一个视图控制器关联!这是错误,view.view是我想在splitViewController中加载的视图,没有其他代码,我只做拆分视图的更改,我使用removefromparentviewcontroller因为我想删除与viewController的关联删除异常

你的splitViewController是UISplitViewController的一个实例吗? http://developer.apple.com/library/ios/#documentation/uikit/reference/UISplitViewController_class/Reference/Reference.html

如果是这样,你做的事情根本就是错误的。 UISplitViewController只是两个视图控制器的容器,主视图控制器和详细视图控制器。然后由您的视图控制器决定如何处理交互等。 removeFromParentViewController仅在View Controller Containment中使用,因此在这里似乎不适用。

请阅读上面链接中的文档,看它是否符合您的需求,但如果我了解,您需要在拆分视图中设置视图控制器,而不是您的视图。

要做到你,你需要这样做:

// Assume this is initialised correctly
UISplitViewController* splitViewController = [UISplitViewController alloc] init...];

// Assign the two view controller you want to be used in the split view controller
splitViewController.viewControllers = @[masterViewController, detailViewController];

如果这不适用,请提供您的代码,以便能够提供正确的解决方案。你的描述对你实际做的事情一直比较模糊。