我正在做一個iPad的技術演示,我遇到了一個嚴重的技術問題。UISplitViewController和複雜的視圖層次
我有一個應用程序的概念,利用UISplitViewController,但不是作爲整個應用程序的主控制器。
該應用程序流程大致可描述成這樣:
主屏幕(UIViewController中) 列表 - >詳細「目錄」(UISplitViewController) 超詳細屏幕(UIViewController的,但也可以想到的是SPLITVIEW的孩子) 。
問題出在Home和Catalog之間的流程中。一旦UISplitViewController視圖添加到UIWindow中,它就開始引起混亂。
這個問題可以在此被概括:
當UISplitView產生酥料餅的視圖,它似乎然後被鎖存至其父視圖。從UIWindow子視圖中移除UISplitView後,您將看到CoreGraphics異常,並且該視圖將無法刪除。
在添加其他視圖(大概是在這種情況下,您要返回的主屏幕)時,它們不會自動旋轉,而是由於CG異常導致無法刪除的UISplitView繼續響應輪換,導致可怕的渲染錯誤,不能被「處理」。此時,添加任何視圖,甚至重新添加SplitView,都會導致一連串的渲染錯誤。
然後,我試着簡單地將SplitView保留爲「底部」視圖,並在其上添加並移除主屏幕,但由於SplitView支配方向更改調用,並且主屏幕將會不會旋轉,即使您致電[homeScreen becomeFirstResponder]
您不能將SplitView放入類似UINavigationController的層次結構中,您將收到徹底的運行時錯誤,因此該選項不在表格中。無論如何,莫代爾看起來很糟糕,並且不鼓勵。
我在這個時候的推測是,解決這個問題的唯一正確方法是「解除武裝」UISplitViewController,以便它可以從其父視圖中刪除而不拋出未處理的異常,但我不知道如何。
如果您希望看到一個完全符合我需要的應用程序,請查看iPad應用程序商店中的GILT Groupe。他們把它關閉了,但他們似乎編了一整個自定義視圖轉換集。
幫助將不勝感激。
嘿Jasconius ..我試圖做同樣的,因爲你甚至我正在看Gilt的應用程序。我需要確切的same.can你發佈一些示例代碼?這將是很大的幫助..感謝 – Nnp 2010-10-07 20:52:47
是的,這正是我們在Gilt應用程序中所做的。 SplitViewController在另一個控制器中確實不能很好地發揮作用,所以我們堅持使用模態視圖來遠離分割視圖進行導航。 – jexe 2011-01-01 23:06:39
請查看我的[custom UISplitViewController](http://iphone-dev-tips.alterplay.com/2011/05/custom-uisplitviewcontroller-for-ipad.html)。它確實能夠滿足你的需求。 – slatvick 2011-05-02 07:58:23