UISplitViewController
has the delegate method:
-(void)splitViewController:(UISplitViewController *)svc popoverController:(UIPopoverController *)pc willPresentViewController:(UIViewController *)aViewController
I'm looking to obtain functionality from a similar, but non-existent, delegate method:
-(void)splitViewController:(UISplitViewController *)svc popoverController:(UIPopoverController *)pc willDismissViewController:(UIViewController *)aViewController
Thoughts on the best way to do this considering UISplitViewController
/UIPopoverController
/UIKit
in general aren't KVO compliant, so I can't add an observer to UIPopoverController
's isPopoverVisible
property.
Thanks
//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");
}
Figured it out, add the UIPopoverController
delegate in addition to the 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");
}