ios - UITabBarController内的UISplitViewController在尝试检查 [splitViewController viewControllers ] 时给出错误

  显示原文与译文双语对照的内容

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
 UISplitViewController *splitViewController = (UISplitViewController *)[[tabBarController viewControllers] firstObject];
 UINavigationController *navigationController = [[splitViewController viewControllers] lastObject];
 splitViewController.delegate = (id)navigationController.topViewController;
}

这是我的当前代码,检查设备是否为 iPad 。 如果是,它应该只在对象视图控制器中设置tabbarcontroller的最后一个对象。 Storyboard 按如下方式执行:


Tabbarcontroller[0]>Splitviewcontroller[1]>Navigationcontroller[0]>delegate(?)

我仍然不知道委托做什么,但是在检查分割视图控制器的模板时,我认为它使用委托来更新内容。 我崩溃的线路是 [splitViewController viewControllers]

时间: 作者:

根据苹果指南,UISplitViewController 应该是 root 视图控制器。 不能将它作为子控制器插入到 UITabBarController 中:

拆分视图控制器必须始终是你创建的任何接口的root 。 换句话说,你必须始终从UISplitViewController对象安装视图,作为应用程序窗口的root 视图。

来自"查看iOS的控制器目录"用户指南

作者:
...