我正在开发一个 iPad/通用应用程序,并且我面临将 UINavigationController 处理为 UISplitViewController 中的主要详细视图的问题。我想知道的是如何在横向时将默认侧控制器按钮添加到细节控制器。
定义
拆分视图控制器是这样定义的:
splitViewController = [[UISplitViewController alloc] init];
SideController *root = [[[SideController alloc] init] autorelease];
DetailController *detail = [[DetailController alloc] init];
InserisciDatiController *calcolo = [[[InserisciDatiController alloc]
initWithNibName:@"InserisciDatiNuovi"
bundle:[NSBundle mainBundle]]
autorelease];
UINavigationController *rootNav = [[[UINavigationController alloc] initWithRootViewController:root]autorelease];
UINavigationController *calcoloNav = [[[UINavigationController alloc] initWithRootViewController:calcolo] autorelease];
splitViewController.viewControllers = [NSArray arrayWithObjects:rootNav, calcoloNav, nil];
splitViewController.delegate = detail;
后来我释放了所有可释放的对象。我将SideController
用作详细控制器的一种索引。它有一个表格视图,单击每一行我都会更新详细信息的主视图控制器。每个新控制器始终是 UINavigationController 的一个实例。
更新细节
myAppDelegate *delegate = (myAppDelegate *)[[UIApplication sharedApplication] delegate];
UINavigationController *nav = (UINavigationController *)[delegate.splitViewController.viewControllers objectAtIndex:1];
[nav setViewControllers:[NSArray arrayWithObjects:controller, nil]];
当用户点击侧视图控制器中的一行时,我使用这段代码来更新细节控制器。
处理横向
当我想添加默认工具栏按钮以显示隐藏的侧视图控制器时,我想知道如何处理横向。我无法做的是让详细导航控制器的工具栏使用此方法添加按钮:
- (void)splitViewController:(UISplitViewController*)svc
willHideViewController:(UIViewController *)aViewController
withBarButtonItem:(UIBarButtonItem*)barButtonItem
forPopoverController:(UIPopoverController*)pc
而且,当我将新控制器推送到导航控制器时,默认的后退按钮将出现在工具栏中。在这种情况下,我应该如何处理按钮创建?
更新
请不要告诉我没有人遇到过这种问题!您如何开发 iPad 应用程序?呜咽...