另一个视图中的IPad拆分视图实现

时间:2012-06-27 05:50:34

标签: ios uisplitviewcontroller ipad uisplitview

我正在创建一个iPad应用程序,它有几个视图来加载数据,但对于一个视图我需要添加拆分视图。我不需要在其他视图中拆分视图。它们只是详细页面。我通过网络搜索并找到了很多基于iPad拆分视图的教程。但问题是他们都在创建一个项目作为拆分视图项目,或者他们创建一个窗口基础应用程序并向委托添加slipt视图。我不需要这样做,我只需要为一个视图实现这个拆分视图。有没有办法克服这个问题?

2 个答案:

答案 0 :(得分:0)

您可以在导航控制器中添加拆分视图。 即使拆分视图是容器视图控制器,Apple在文档中建议不要将所有容器嵌入到其他容器中,在导航控制器内添加拆分视图也能正常工作,我从未注意到这样做会产生任何副作用。

基本上你应该做的是: - 在app delegate中创建一个UINavigationController并将其用作应用程序窗口的根视图 - 如果您不想看到它,请隐藏导航控制器导航栏(显示顶部主导航栏的拆分视图看起来不太好......) - 然后在导航栏中添加视图控制器。

示例:假设您有此应用程序视图序列:

第一视图(完整视图=详细页面) 第二视图(拆分视图) 第三视图(完整=详细页面)

因此,您可以将FIRST和THIRD表示为标准视图控制器(全屏),而SECOND将是拆分视图。您的应用程序将通过创建主导航控制器进行初始化,在其上添加FIRST作为顶级控制器并使用主导航控制器作为窗口的根视图。

如果您不想使用推荐的推/弹方法,则使用导航控制器push,pop方法在这些视图之间切换或直接更改导航控制器“viewControllers”数组。

如果您需要根据顶部的视图类型向导航控制器添加特殊行为,只需将您的应用程序委托注册为导航控制器委托(或者如果您不希望将“专用于此的”主控制器“对象)使您的应用代表复杂化)。

答案 1 :(得分:0)

我不是百分百肯定,但在我看来,你不能在视图层次结构的某个地方使用SplitView。

Apple的预期方法是使用SplitViewController作为顶级控制器。它的左侧可以包括一个带有导航控制器的向下钻取机制,因此您可以很好地向下钻取层次结构,右侧将显示您在左侧选择的项目的详细信息。

如果你需要一种带有某种分割机制的视图,你可能需要自己编写代码。甚至更好:找到一些可以在UI中使用的其他机制。

您现在如何切换视图层次结构?也许您可以将现有的UI集成到SplitViewController中?