首款iPad应用:面临问题

时间:2012-03-18 03:47:48

标签: ios ipad

我试图通过在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模拟器出现黑屏。

请查看可能出现的问题。

由于

3 个答案:

答案 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;