在我的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中的縱向覆蓋
- 4. 在縱向方向隱藏在UISplitViewController中的DetaiViewController
- 5. 如何以編程方式隱藏UITabBarController?
- 6. 如何以編程方式創建UISplitViewController?
- 7. UISplitViewController以編程方式
- 8. 如何以編程方式顯示UISplitViewController主?
- 9. 如何取消隱藏UISplitViewController的主人?
- 10. 使隱藏/取消隱藏主視圖控制器在縱向工作方式與縱向相同
- 11. UISplitViewController - 在縱向模式下以masterViewController可見的方式打開
- 12. 以編程方式隱藏工具欄
- 13. 以編程方式隱藏UITabBar
- 14. 從NSStatusItem以編程方式隱藏NSMenu
- 15. 以編程方式隱藏Woocommerce產品
- 16. 以編程方式隱藏SPField
- 17. 以編程方式隱藏UIAlertView?
- 18. 以快速編程方式隱藏TextFields?
- 19. UISplitViewController出現在橫向模式縱向
- 20. 以編程方式禁用縱向方向鎖定
- 21. SplitViewcontroller以編程方式隱藏主視圖
- 22. popover UISplitViewController
- 23. UISplitViewController以編程方式沒有nib/xib
- 24. 如何以編程方式最小化/隱藏應用程序?
- 25. 以編程方式隱藏和取消隱藏按鈕
- 26. 如何以編程方式隱藏或隱藏搜索建議列表?
- 27. 如何使用popover樣式顯示UISplitViewController的主視圖?
- 28. 以編程方式將方向從橫向改爲縱向模式xamarin IOS
- 29. UISplitViewController:如何呈現popover?
- 30. UISplitViewController縱向模式缺少UIBarButtonItem
嗨mkerley,我試過上面的解決方案,但它不是調用UISplitViewControllerDelegate methods.Can你能幫我嗎? – Minakshi 2014-04-01 05:56:44