У меня есть UIPopoverController с самоотдачей в качестве делегата:
Я получаю вызовы, когда касаюсь за пределами контроллера поповера, но когда я касаюсь внутри, я тоже хочу отклонить, поэтому я использую -dismissPopoverAnimated: но делегат не вызывается в этом случае.
Это нормально? Это ошибка или я что-то не так делаю?
newDocPopoverController = [[UIPopoverController alloc] initWithContentViewController:vc];
[newDocPopoverController setPopoverContentSize:CGSizeMake(240, 44*4)];
[newDocPopoverController presentPopoverFromBarButtonItem:sender
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
[newDocPopoverController setDelegate:self];
UPDATE:
О, независимо от причины возникновения проблемы (является ли это ошибкой или предполагаемым поведением), вызов делегата сам решает проблему :)
При касании представления contentViewController я вызываю родительский делегат UIPopoverController для вызова.
if ([parentPopoverController.delegate popoverControllerShouldDismissPopover:parentPopoverController]){
[parentPopoverController dismissPopoverAnimated:YES];
[parentPopoverController.delegate popoverControllerDidDismissPopover:parentPopoverController];
}r];