【发布时间】:2011-02-04 12:14:59
【问题描述】:
每当我尝试以模态方式呈现 UISplitViewController 时,应用程序就会崩溃。因此它必须始终是根视图控制器。谁能确认一下?
【问题讨论】:
-
仅供参考,我认为这是要走的路:见类似问题:stackoverflow.com/a/19983002/1134595
标签: ios ipad uisplitviewcontroller
每当我尝试以模态方式呈现 UISplitViewController 时,应用程序就会崩溃。因此它必须始终是根视图控制器。谁能确认一下?
【问题讨论】:
标签: ios ipad uisplitviewcontroller
来自Apple iPad Programming Guide:
拆分视图控制器的视图 应始终作为根安装 应用程序窗口的视图。你 永远不应该呈现拆分视图 在导航栏或标签栏内 界面。
所以是的,您不能在主应用程序窗口之外显示拆分视图(包括模态)。
编辑
上述文档的链接不再讨论此主题。现在可以在 Apple 的View Controller Catalog for iOS 找到相关讨论,其中声明如下:
拆分视图控制器必须始终是您创建的任何界面的根。换句话说,您必须始终将 UISplitViewController 对象中的视图安装为应用程序窗口的根视图。 [...] 拆分视图控制器不能以模态方式呈现。
【讨论】:
当我尝试从常规内容视图控制器中进行转接时,我遇到了同样的问题和相同的错误(即,从选项卡控制器或导航控制器转接没有问题)。
幸运的是,我找到了一种通过在 VC 和拆分视图控制器之间插入导航控制器来规避这种情况的方法。换句话说,从 VC 到导航控制器,然后在导航控制器和拆分视图控制器之间绘制关系连接。这样,实例化拆分视图仍然不需要编码。
【讨论】:
当然你可以使用UISplitViewController 而不用它作为根视图控制器。
在我的项目中,我是这样使用它的:
在- (void)viewDidLoad 中,将splitViewController.view 设置为mainViewController.view
splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, detailNavigationController, nil];
self.view = splitViewController.view;
【讨论】:
UISplitController 可以安装在 UITabBarController 下。我做。只需在此论坛上使用搜索即可 - 我找到了至少一个不错的软件示例。
【讨论】:
是的,你必须使用 RootViewController,它应该继承自 UITableViewController。你可以看看这个tutorial
【讨论】: