每当我试图以模态方式呈现UISplitViewController时,应用程序会崩溃。因此,它必须始终是根视图控制器。有人可以确认吗?
分栏视图控制器的视图应始终安装为应用程序窗口的根视图。您不应该在导航或选项卡栏界面中显示分栏视图。
因此,是的,你不能将拆分视图呈现在主应用程序窗口之外(包括模态方式)。
编辑
上述文档的链接不再讨论此主题。可在苹果的iOS视图控制器目录中找到相关讨论,其中指出:
拆分视图控制器必须始终是您创建的任何界面的根。换句话说,您必须始终将来自UISplitViewController对象的视图安装为应用程序窗口的根视图。[...] 拆分视图控制器不能以模态方式呈现。
当我尝试从常规内容视图控制器(即从标签控制器或导航控制器中的Segue没有问题)中进行Segue时,我遇到了相同的问题和错误。
幸运的是,我找到了一种方法来绕过这个问题,就是在VC和分割视图控制器之间插入一个导航控制器。换句话说,从VC到导航控制器进行Segue,然后在导航控制器和分割视图控制器之间建立关系连接。通过这种方式,实例化分割视图仍然不需要编码。
当然可以在不使用它作为根视图控制器的情况下使用UISplitViewController
。
在我的项目中,我像这样使用:
[self presentModalViewController:mainViewController animated:YES];
mainViewController
中:UISplitViewController *splitViewController;
并在- (void)viewDidLoad
方法中,将splitViewController.view
设置为mainViewController.view
splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, detailNavigationController, nil];
self.view = splitViewController.view;
UISplitController可以安装在UITabBarController下面。我已经这么做了。只需要在论坛上搜索一下 - 我至少找到了一个好的软件示例。