Azu*_*Azu 7 objective-c ipad ios
在我的UISplitViewController应用程序中,我有
当点击RootViewController中的一个项目(在UITableView中)时,将设置新的视图控制器,如下所示:
[detailViewController setViewControllers:[NSArray arrayWithObjects:newViewController, nil] animated:animated];
//detailPane is my DetailViewController
一切都在横向模式下很好用.但是,我无法使UISplitViewController在纵向模式下工作,也就是说,当我在portait模式下启动并使用应用程序时,RootViewController的弹出按钮在我的DetailViewController中不能正确显示.
当我以纵向模式启动应用程序时,弹出按钮会正确显示.但是在弹出窗口中的一个项目并且在detailViewController上设置了新的视图控制器之后,该按钮消失了.我必须将设备旋转到横向,然后再次回到纵向以使按钮再次出现.
我在我的应用程序的AppDelegate中设置了我的UISplitViewController的委托,如下所示:
self.splitViewController.delegate = self.detailViewController
这是我的UISplitViewControllerDelegate实现
- (void)splitViewController: (UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc {
NSLog(@"Will hide view controller");
barButtonItem.title = @"Menu";
[self.navigationItem setLeftBarButtonItem:barButtonItem];
self.popoverController = pc;
}
- (void)splitViewController: (UISplitViewController*)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem {
NSLog(@"Will show view controller")
NSMutableArray *items = [self.navigationItem.leftBarButtonItems mutableCopy];
[items removeAllObjects];
[self.navigationItem setLeftBarButtonItems:items animated:YES];
[items release];
self.popoverController = nil;
}
Run Code Online (Sandbox Code Playgroud)
非常感谢任何提示或帮助.谢谢.
当您设置放置在 上的新视图控制器时navigation stack
,可能所有导航按钮都会重置。更改后您可以手动添加适当的按钮navigation stack
。
例如,您可以从- (void)splitViewController: (UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc
创建默认弹出框控制器按钮的位置选择代码:
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"Menu" style:UIBarButtonItemStyleBordered target:self action:@selector(appropriateSelector)];
[self.navigationItem setLeftBarButtonItem:barButtonItem];
self.popoverController = pc;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10891 次 |
最近记录: |