每当我尝试以模态方式呈现UISplitViewController时,应用程序崩溃。因此,它必须始终是根视图控制器。任何人都可以确认吗?
答案 0 :(得分:21)
来自Apple iPad Programming Guide:
拆分视图控制器的视图 应始终作为根安装 应用程序窗口的视图。您 永远不应该出现拆分视图 在导航或标签栏内 接口
所以是的,你不能在主应用程序窗口之外呈现拆分视图(包括模态)。
修改强>
上述文档的链接不再讨论此主题。现在可以在Apple的View Controller Catalog for iOS找到相关的讨论,其中陈述如下:
拆分视图控制器必须始终是您创建的任何接口的根。换句话说,您必须始终从UISplitViewController对象安装视图作为应用程序窗口的根视图。 [...]拆分视图控制器无法以模态方式显示。
答案 1 :(得分:3)
当我尝试从常规内容视图控制器中进行切换时(即没有问题从选项卡控制器或导航控制器中消失),我遇到了同样的错误。
幸运的是,我找到了一种方法来通过在VC和拆分视图控制器之间插入导航控制器来避免这种情况。换句话说,从VC到导航控制器的segue,然后在导航控制器和拆分视图控制器之间绘制关系连接。通过这种方式,实例化拆分视图仍然不需要编码。
答案 2 :(得分:2)
当然,您可以使用UISplitViewController
而不将其用作根视图控制器。
在我的项目中,我使用它:
[self presentModalViewController:mainViewController animated:YES];
UISplitViewController *splitViewController;
并在- (void)viewDidLoad
中,将splitViewController.view
设置为mainViewController.view
splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, detailNavigationController, nil];
self.view = splitViewController.view;
答案 3 :(得分:1)
UISplitController可以安装在UITabBarController下。我做到了只需在这个论坛上使用搜索 - 我找到了至少一个好的软件样本。
答案 4 :(得分:0)
是的,您必须使用RootViewController,它应该从UITableViewController继承。您可以查看此tutorial