我正在做一个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