UISplitViewController是UINavigationController中的根控制器吗?

问题描述:

接口构建器不允许添加UISplitViewController作为UINavigationController的根控制器。 我也尝试以编程方式创建UINavigationController并将其根视图控制器设置为UISplitViewController。UISplitViewController是UINavigationController中的根控制器吗?

结果是只有在导航栏的空白窗口。

我也尝试拆分视图控制器更换,MGSplitViewController。它主要工作,除了在分割视图控制器内,主视图是另一个UINavigationController。它的导航栏显示太厚。改变方向并返回清除它。

我一直在尝试各种不同的方法有,看起来像一个拆分视图和我之间切换其他视图的视图。我在一个标签视图控制器中尝试过,编写我自己的控制器来管理窗口的子视图,并将分割视图作为托管视图,现在是导航控制器。所有的尝试都有一些问题。最一致的问题是关于视图的方向。我的应用程序正在横向模式下运行,并且通常儿童视图认为它仍然是人像。

任何想法赞赏。

底线号:一UISplitViewController必须是一个应用程序的根视图(或者更具体地,一个窗口)。它不能住在UINavigationController或其他东西里面。

这是与当前的SDK的情况下,并没有保证,将在未来的SDK改变。

+0

这是不正确的。可能有人认为,UISplitViewController *应该只能是窗口的根视图,您可以通过编程方式创建UISplitViewController,并将其视图添加为另一个视图的子视图。我有一个客户正在这样做来呈现应用程序的设置屏幕,并且它工作得很好。也就是说,在导航堆栈上放置分割视图看起来很奇怪。 – 2011-01-07 19:56:38

+1

@chrispix在撰写本文时,将拆分视图放置在另一个视图控制器内会产生运行时错误。 AFAIK它仍然有,但我还没有尝试4.2 SDK。继续需要您自担风险。 – 2011-01-08 18:41:44

将分割视图添加到导航堆栈似乎很奇怪。分割视图控制器的主窗格通常是一个导航控制器,因此(不知道更多关于您的设计的内容),我可能会使用它来控制您的导航层次结构。