Dismissing UIPopoverController with -dismissPopoverAnimated: won't call delegate?
cocoa-touch, delegates, iphone, uipopovercontroller
Solution
That's normal, expected behavior.
Quoting the Apple docs on `popoverControllerDidDismissPopover:`:
The popover controller does not call this method in response to programmatic calls to the `dismissPopoverAnimated:` method. If you dismiss the popover programmatically, you should perform any cleanup actions immediately after calling the `dismissPopoverAnimated:` method.
Problem
I have my UIPopoverController with self as a delegate: I receive calls when I tap outside the popover controller, but when I tap inside I want to dismiss too, so I use -dismissPopoverAnimated: but delegate is not called in this case. Is this normal? Is this a bug or I am doing something wrong? ``` newDocPopoverController = [[UIPopoverController alloc] initWithContentViewController:vc]; [newDocPopoverController setPopoverContentSize:CGSizeMake(240, 44*4)]; [newDocPopoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; [newDocPopoverController setDelegate:self]; ``` UPDATE: Oh, regardless the origin of the problem (Whether is a bug or this is the intended behavior) calling the delegate by myself solves the problem :) When the contentViewController's view is touched I will call parent UIPopoverController's delegate a call. ``` if ([parentPopoverController.delegate popoverControllerShouldDismissPopover:parentPopoverController]){ [parentPopoverController dismissPopoverAnimated:YES]; [parentPopoverController.delegate popoverControllerDidDismissPopover:parentPopoverController]; }r]; ```