在我的UISplitViewController
中,主控制器是UINavigationController
。 在纵向模式下,只要用户向上导航(使用后退按钮),我想保持导航控制器可见。一旦选择了导航控制器的表格视图中的项目,我想要关闭弹出窗口。 我该如何做到这一点?我的UITableViewController
如何知道它是否在弹出窗口内,如果是,请自行解散?纵向UISplitViewController:如何以编程方式隐藏主Popover?
11
A
回答
20
使您的主视图控制器为UISplitViewControllerDelegate
(如果它尚未),并将其连接到UISplitViewController的delegate
插座。
在您的主视图控制器创建UIPopoverController
变量:
// MyViewController.h
@interface MyViewController : UIViewController <UISplitViewControllerDelegate> {
UIPopoverController *popoverController;
}
@property (retain, nonatomic) UIPopoverController *popoverController;
// MyViewController.m
@synthesize popoverController;
实现以下UISplitViewControllerDelegate方法:
// Called when rotating to portrait
- (void)splitViewController:(UISplitViewController*)svc
willHideViewController:(UIViewController *)aViewController
withBarButtonItem:(UIBarButtonItem*)barButtonItem
forPopoverController:(UIPopoverController*)pc {
// Popover controller is visible in portrait
self.popoverController = pc;
}
// Called when rotating to landscape
- (void)splitViewController:(UISplitViewController*)svc
willShowViewController:(UIViewController *)aViewController
invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem {
// No popover controller in landscape view
self.popoverController = nil;
}
在自己的处理程序在主视图控制器(被调用时,一个在表格视图中选择一个导航项目):
- (void)navigationControllerSelectedItem:(id)item {
// If a popover controller is visible, hide it
if (popoverController) {
[popoverController dismissPopoverAnimated:YES];
}
}
不要忘记释放该变量:
- (void)dealloc {
self.popoverController = nil;
[super dealloc];
}
希望有所帮助!
0
iOS5中SplitViewController的标准iPad示例与精心设计的答案大致相同,但popoverController称为masterPopoverController。
创建属性iOS5样式为_popoverController不起作用,因为那里已经有一个名为UIViewController.h的ivar。
0
IOS 6.0 SplitView模板具有此内置功能。详细信息视图会跟踪方向和MasterViewController弹出窗口。
只要设置了detailItem,popover就会在适当的时候消失。如果您使用的是相同的detaiItem,则甚至会进行检查,因此无法完成页面设置和刷新工作。
self.detailViewController.detailItem = self.detailViewController.detailItem;
相关问题
- 1. 如何以编程方式隐藏UISplitViewController的主部分?
- 2. 隐藏UISplitViewController中的纵向覆盖
- 3. 在纵向方向隐藏在UISplitViewController中的DetaiViewController
- 4. 如何以编程方式隐藏UITabBarController?
- 5. 如何以编程方式显示UISplitViewController主?
- 6. 使隐藏/取消隐藏主视图控制器在纵向工作方式与纵向相同
- 7. 如何取消隐藏UISplitViewController的主人?
- 8. 以编程方式隐藏Woocommerce产品
- 9. 以快速编程方式隐藏TextFields?
- 10. 以编程方式隐藏UIAlertView?
- 11. 从NSStatusItem以编程方式隐藏NSMenu
- 12. 以编程方式隐藏SPField
- 13. 以编程方式隐藏UITabBar
- 14. 以编程方式禁用纵向方向锁定
- 15. UISplitViewController以编程方式没有nib/xib
- 16. 以编程方式隐藏和取消隐藏按钮
- 17. 以编程方式将方向从横向改为纵向模式xamarin IOS
- 18. UISplitViewController:如何呈现popover?
- 19. UISplitViewController纵向模式缺少UIBarButtonItem
- 20. 如何以编程方式隐藏视图?
- 21. 如何以编程方式隐藏按钮
- 22. 如何以编程方式隐藏文件夹中的Android
- 23. 无论如何要以编程方式隐藏jQuery UI按钮?
- 24. 如何以编程方式隐藏LabVIEW前面板元素?
- 25. 如何以编程方式在“隐藏”中设置文件C
- 26. 如何以编程方式从底部栏中隐藏项目
- 27. 如何在Android中以编程方式显示/隐藏windowActionBar?
- 28. 如何在iphone中以编程方式隐藏键盘
- 29. 如何隐藏键盘并以编程方式更新EditTextPreference?
- 30. 如何以编程方式在Android中隐藏布局/视图
嗨mkerley,我试过上面的解决方案,但它不是调用UISplitViewControllerDelegate methods.Can你能帮我吗? – Minakshi 2014-04-01 05:56:44