Это заставляет меня чесать голову.У меня есть контроллер представления, который реализует UIPopoverControllerDelegate
:
@interface MyViewController : UIViewController<UIPopoverControllerDelegate> {
Он реализует методы в этом протоколе, например так:
- (bool)popoverControllerShouldDismissPopover
{
NSLog(@"THIS IS NEVER CALLED");
return true;
}
- (void)popoverControllerDidDismissPopover
{
NSLog(@"THIS IS ALSO NEVER CALLED");
}
Я создаю контроллер представления, который будет показан вpopover и контроллер popover, вот так:
-(IBAction)buttonPress:(id)sender
{
self.popoverViewController = [[MyPopoverViewController alloc] init];
self.popover = [[UIPopoverController alloc] initWithContentViewController:popoverViewController];
self.popover.delegate = self;
CGRect frame = button.frame;
[self.popover presentPopoverFromRect:frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
Я очень четко настраиваю popover.delegate = self
. ОДНАКО , реализованные мной методы делегата popoverViewController
никогда не вызываются.
Есть идеи?
Редактировать: Обратите внимание, я использую ARC & LLVM.