UISplitViewController
有委托方法:
-(void)splitViewController:(UISplitViewController *)svc popoverController:(UIPopoverController *)pc willPresentViewController:(UIViewController *)aViewController
我希望从类似但不存在的委托方法中获取功能:
-(void)splitViewController:(UISplitViewController *)svc popoverController:(UIPopoverController *)pc willDismissViewController:(UIViewController *)aViewController
关于考虑UISplitViewController
/ UIPopoverController
/ UIKit
的最佳方法的一般考虑不符合KVO,因此我无法向{{1}添加观察者} UIPopoverController
属性。
由于
isPopoverVisible
答案 0 :(得分:3)
想出来,除了UIPopoverController
之外还添加UISplitViewControllerDelegate
委托:
//Sent when switching to portrait
- (void)splitViewController:(UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController:(UIPopoverController*)pc
{
...
self.popoverController = pc;
[self.popoverController setDelegate:self];
}
-(void)splitViewController:(UISplitViewController *)svc popoverController:(UIPopoverController *)pc willPresentViewController:(UIViewController *)aViewController
{
NSLog(@"SHOWING POPOVER");
}
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
NSLog(@"HIDING POPOVER");
}
答案 1 :(得分:2)
当您获得第一个委托通知时,您将传递对将显示隐藏视图控制器的UIPopoverController的引用。注册为其委托,然后使用UIPopoverControllerDelegate协议中的-popoverControllerDidDismissPopover:
委托方法。