在iOS6中无法摆脱"Splitview控制器在使用之前在索引0处有一个视图控制器"错误

tit*_*aca 5 ipad uisplitviewcontroller ios ios6

我正在尝试将我的应用程序转换为通用的iPad支持,无论我做什么,我都无法摆脱"Splitview控制器在使用之前预计在索引0处有一个视图控制器!" 应用程序明星之后的错误.

我使用iOS6作为目标,XCode 4.6.3.尝试了我在本网站和谷歌上找到的所有东西,根本没有帮助我.

我想添加一个TabBar控制器作为主控制器(左侧一个在拆分控制器中)和一些其他控制器作为详细控制器.这是我在AppDelegate.m中的当前代码:

tabController = [[UITabBarController alloc] init];
[tabController setViewControllers:[NSArray arrayWithObjects:navAddVC, nav, svcNav, stvcNav, nil]]; 
FirstDetailViewController *fdvc = [[FirstDetailViewController alloc];
initWithNibName:@"FirstDetailViewController" bundle:nil];
UINavigationController *fdvcNav = [[UINavigationController alloc] initWithRootViewController:fdvc];
viewControllers = [[NSArray alloc] initWithObjects:tabController, fdvcNav, nil];
UISplitViewController *splitvc = [[UISplitViewController alloc] initWithNibName:nil bundle:nil];
[[splitvc view] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"splitViewControllerBG"]]];
[splitvc setViewControllers:viewControllers];
[splitvc setDelegate:fdvc];
[[self window] setRootViewController:splitvc];
[[self window] makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)

我很感激任何帮助,谢谢.

tit*_*aca 10

感谢@Wain我解决了它.

事情是,通过为我的分裂vc设置背景图像,我正在加载它的视图.因此解决方案是在设置背景颜色之前设置viewControllers数组.

  • 这也适用于设置UISplitViewController的其他属性,例如`setPreferredDisplayMode`.只需在设置VC后配置它们. (2认同)