2012-10-16 61 views
1

我想改變一個splitViewController中的詳細視圖,我有UIViewControllerHierarchyInconsistency異常,當我做 self.detailView.view = view.view; 我控制瞭如果xib文件中有其他viewControllers,我也使用方法removeFromParentViewController,但我有同樣的異常。 錯誤僅在iOS 6中,但在iOS 5中不在iPad模擬器中。UIViewControllerHierarchyInconsistency查看控制器異常

+0

你能否提供一些代碼來給出正在發生的情況?比如view.view來自哪裏,使用removeFromParentViewController,以及從控制檯吐出確切的錯誤。 – WDUK

+0

終止應用程序由於未捕獲的異常'UIViewControllerHierarchyInconsistency',原因:'視圖一次只能與最多一個視圖控制器關聯!這是錯誤,view.view是我想要在splitViewController中加載的視圖,沒有其他代碼,我只做了拆分視圖的更改,我使用removefromparentviewcontroller,因爲我想將關聯刪除到viewController刪除異常 – user1575803

回答

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]; 

如果不適用,則請提供您的代碼,以便正確的解決方案可以進行。你的描述對於你實際在做什麼而言很模糊。

+0

是的,這是我所做的,我直接改變了viewControllers ... – user1575803