我试图通过在AppDelegate中调用它来获取拆分控制器的视图,但它没有显示出来。以下是用didfinishlaunchwithoptions
编写的代码:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
SplitViewController *splitViewController = [[SplitViewController alloc] initWithNibName:@"SplitViewController" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:splitViewController];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
我有SplitViewController.xib,视图为红色。但iPad模拟器出现黑屏。
请查看可能出现的问题。
由于
答案 0 :(得分:3)
拆分视图控制器无法推送到导航控制器
这是关键。尝试将拆分视图控制器直接添加到窗口中。
self.window.rootViewController = self.splitViewController;
答案 1 :(得分:1)
您没有在笔尖中正确设置视图。拆分视图控制器需要设置两个视图,即主视图和详细视图。未设置您的详细信息视图,因此永远不会创建viewcontroller。
The docs on UISplitViewController表示您需要将viewControllers
属性设置为恰好两个视图。我想你只是设置一个(红色视图)。
编辑:您没有设置主视图....所以它接近我之前在评论中所说的内容(视图设置不正确)
答案 2 :(得分:0)
AppDemoMasterViewController *masterViewController = [[[AppDemoMasterViewController alloc] initWithNibName:@"AppDemoMasterViewController_iPad" bundle:nil] autorelease];
UINavigationController *masterNavigationController = [[[UINavigationController alloc] initWithRootViewController:masterViewController] autorelease];
AppDemoDetailViewController *masterViewController = [[[AppDemoDetailViewController alloc] initWithNibName:@"AppDemoDetailViewController_iPad" bundle:nil] autorelease];
UINavigationController *detailNavigationController = [[[UINavigationController alloc] initWithRootViewController:detailViewController] autorelease];
self.splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, detailNavigationController, nil];
self.window.rootViewController = self.splitViewController;