我正在创建一个iPad应用程序,它有几个视图来加载数据,但是对于一个视图,我需要添加拆分视图。我不需要在其他视图中拆分视图。它们只是详细信息页面。我在网上搜索,找到了很多基于iPad拆分视图的教程。但问题是他们都在创建一个项目作为拆分视图项目,或者他们创建一个基于窗口的应用程序并将滑动视图添加到委托。我不需要这样做,我只需要为一个视图实现这个拆分视图。有没有办法克服这个问题?
您可以在导航控制器中添加拆分视图。即使拆分视图是容器视图控制器,并且Apple在文档中建议不应将所有容器嵌入其他容器中,在导航控制器中添加拆分视图也可以正常工作,我从未注意到这样做的任何副作用。
基本上你应该做的是:- 在应用程序委托中创建一个UINavigation控制器并将其用作应用程序窗口的根视图- 隐藏导航控制器导航栏,如果你不想看到它(显示一个拆分视图,顶部有一个主导航栏不好看......- 然后在导航栏中添加您的视图控制器。
示例:假设您有以下应用程序视图序列:
第一个视图(完整视图 = 详细信息页面)第二个视图(拆分视图)第三次查看(完整 = 详情页面)
因此,您可以将 FIRST 和 THIRD 表示为标准视图控制器(全屏),而 SECOND 将是拆分视图。应用将通过创建主导航控制器、在其上添加 FIRST 作为顶部控制器并使用主导航控制器作为窗口的根视图来初始化。
如果您不想要推荐的推送/弹出方法,则比使用导航控制器 push、pop 方法在这些视图之间切换或直接更改导航控制器"viewControllers"数组。
如果需要根据顶部的视图类型向导航控制器添加特殊行为,只需将应用委托注册为导航控制器委托(如果不想使应用委托复杂化,则注册为专用于此的"主控制器"对象)。
我不是 100% 确定,但在我看来,您不能仅在视图层次结构中的某个位置使用 SplitView。
苹果的预期方法是使用 SplitViewController 作为顶级控制器。它的左侧可以包括带有导航控制器的向下钻取机制,因此您可以向下钻取层次结构,右侧将显示您在左侧选择的项目的详细信息。
如果您需要一个带有某种拆分机制的视图,您可能必须自己编写代码。甚至更好:找到一些可以在UI中使用的其他机制。
您现在如何切换视图层次结构?也许您可以将现有的UI集成到SplitViewController中?