我正在以编程方式为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,我必须手动编码?,手动操作真的很难我已经完成了故事板中的所有操作
谢谢。
答案 0 :(得分:0)
无需masterViewController.detailViewController = detailViewController;
,而是使用self.splitViewController.viewControllers = [NSArray arrayWithObjects: masterNavigationController, detailNavigationController,nil];