两个UISplitViewControllers,1个(共享)详细信息视图

Tim*_*mbo 5 objective-c ipad uisplitviewcontroller uistoryboard uistoryboardsegue

设置场景我有:

  • 带有2个选项卡的选项卡视图控制器
  • 每个选项卡都有一个Split View Controller
  • 我想将每个拆分视图控制器的详细信息视图指向SAME视图.

我附上了一个非常简单的示例项目,展示了这个问题.

在iPad 5.1 Sim中运行它,观察每个选项卡.一个显示共享详细信息视图,一个失败.

NSLog调试报告第二个拆分视图具有NULL详细信息视图控制器:

2012-04-28 07:21:55.451 svcTest[14597:f803] tabBarController viewControllers = (
    "UISplitViewController: 0x6a36100",
    "UISplitViewController: 0x6a39ab0"
)
2012-04-28 07:21:55.455 svcTest[14597:f803] svcA.viewControllers = (
    "UINavigationController: 0x6a36250",
    "UIViewController: 0x6a38720"
)
2012-04-28 07:21:55.457 svcTest[14597:f803] svcB.viewControllers = (
    "UINavigationController: 0x6a39cc0"
)

单击第二个选项卡时出现此错误:

2012-04-28 07:22:58.457 svcTest[14597:f803] Splitview controller  is expected to have a detail children before its used!
2012-04-28 07:22:58.459 svcTest[14597:f803] Split view controller  should have its children set before layout!

看一下故事板我已经设置了详细视图,所以这让我很困惑.

故事板

任何有助于将此"共享"视图显示在每个标签上的帮助都非常感谢.

谢谢!

use*_*261 1

当为 splitViewController 指定两个以上的 viewController 时,我收到了相同的警告,如下所示:

self.splitViewController.viewControllers = @[masterNavigationController, detailNavigationController, subViewController];
Run Code Online (Sandbox Code Playgroud)

当我从数组中删除“subViewController”时,警告消失了。

在阅读了苹果关于添加/删除子视图的文档后,它提到了以下内容:

此属性中的数组必须恰好包含两个视图控制器。当处于横向方向时,视图控制器在分割视图界面中从左到右呈现。因此,索引 0 处的视图控制器显示在界面的左侧,索引 1 处的视图控制器显示在界面的右侧。

您可以查看UISplitViewController Class Reference的链接以获取更多信息。