Методы UIPopoverControllerDelegate, никогда не вызываемые - PullRequest
0 голосов
/ 08 января 2012

Это заставляет меня чесать голову.У меня есть контроллер представления, который реализует 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.

1 Ответ

3 голосов
/ 08 января 2012

Я думаю, что ваши реализации метода делегата неверны.Попробуйте

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController

вместо - (bool) popoverControllerShouldDismissPopover

и

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController

вместо

- (void)popoverControllerDidDismissPopover

важно, чтобы вы получилиимена методов и параметры правильные, иначе они не будут вызваны.

Удачи!

...