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
Answer:
//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
UIPopoverControllerdelegate in addition to theUISplitViewControllerDelegate: