Objective c 两个UISPlitViewController,1个(共享)详细视图
要设置场景,我有:Objective c 两个UISPlitViewController,1个(共享)详细视图,objective-c,ipad,uisplitviewcontroller,uistoryboard,uistoryboardsegue,Objective C,Ipad,Uisplitviewcontroller,Uistoryboard,Uistoryboardsegue,要设置场景,我有: 具有两个选项卡的选项卡视图控制器 每个选项卡都有一个拆分视图控制器 我想将每个拆分视图控制器的详细视图指向 同样的观点 我附上了一个非常简单的 在iPad 5.1 Sim卡上运行,观察每个标签。一个显示共享详细视图,一个失败 NSLog调试报告第二个拆分视图具有空详细视图控制器: 2012-04-28 07:21:55.451 svcTest[14597:f803] tabBarController viewControllers = ( "UISplitView
- 具有两个选项卡的选项卡视图控制器
- 每个选项卡都有一个拆分视图控制器
- 我想将每个拆分视图控制器的详细视图指向 同样的观点
谢谢 我在为splitViewController指定两个以上的ViewController时收到了相同的警告,如下所示:
self.splitViewController.viewControllers = @[masterNavigationController, detailNavigationController, subViewController];
当我从阵列中删除“subViewController”时,警告消失了
在阅读了苹果关于添加/删除子视图的文档后,它提到了以下内容:
此属性中的数组必须正好包含两个视图控制器。当处于横向时,视图控制器在拆分视图界面中从左到右显示。因此,索引0处的视图控制器显示在界面的左侧,索引1处的视图控制器显示在界面的右侧
您可以查看到的链接以了解更多信息。问题在于应用程序代理的
-applicationdFinishLaunchingwithoptions:
这里,拆分视图控制器委托设置在视图控制器之前。这似乎是问题的根源,如果按如下所示反转两行,警告消息将消失:
请改用此代码:
self.splitViewController = [[UISplitViewController alloc] init];
self.splitViewController.viewControllers = [NSArray
arrayWithObjects:masterNavigationController,
detailNavigationController, nil];
self.splitViewController.delegate = detailViewController;
有关详细说明,请参阅:谢谢您的建议。我没有看到在.viewControllers分配之后移动.delegate时警告消失,但在我的例子中,我可以通过移动在.viewControllers之后设置的一些属性来修复它(特别是preferredDisplayMode、preferredPrimaryColumnWidthFraction…)。我在写iOS 9.3。