SplitView - iPad

时间:2013-04-18 09:49:55

标签: ios objective-c uisplitviewcontroller ipad

我正在以编程方式为iPad实现拆分视图控制器。 这是我在didFinishLaunching中使用的代码:

self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.

MasterViewController *masterViewController = [[MasterViewController alloc] init];
UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];

DetailedNewsViewController *detailViewController = [[DetailedNewsViewController alloc] init];
UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController];

masterViewController.detailViewController = detailViewController;

self.splitViewController = [[UISplitViewController alloc] init];
self.splitViewController.delegate = detailViewController;

self.splitViewController.viewControllers = @[masterNavigationController, detailNavigationController];

self.window.rootViewController = self.splitViewController;
[self.window makeKeyAndVisible];

但是当我运行此代码时。 MasterView正确显示,它是一个TableViewController。但是DetailView没有显示,它只是一个黑屏,我尝试以编程方式编写DetailView中使用的变量并将它们添加到视图和放大器中。它奏效了。

为什么MasterViewController直接从故事板中获取它,而对于DetailViewController,我必须手动编码?,手动操作真的很难我已经完成了故事板中的所有操作

谢谢。

1 个答案:

答案 0 :(得分:0)

无需masterViewController.detailViewController = detailViewController;,而是使用self.splitViewController.viewControllers = [NSArray arrayWithObjects: masterNavigationController, detailNavigationController,nil];