viewWillDisappear e viewDidDisappear nunca são chamados

Criei minha própria classe para o PopoverController (sem subclassificar UIPopoverController) para apresentar os ViewControllers da maneira que eu quer

CustomPopoverController NÃO é um UIViewController, mas sim um ivar chamado "contentViewController", que é o VC que realmente será exibido.

Implementei meu próprio "unlockPopoverAnimated:" para descartar meu popover personalizado quando o usuário toca em qualquer lugar fora do quadro contentViewController:

-(void) dismissPopoverAnimated : (BOOL) animated
{
     // dismissalView is the view that intercept the taps outside.
    [self.dismissalView removeFromSuperview];
    self.dismissalView = nil;
    if (animated)
    {
        CGRect newFrame = self.view.frame;
        // When in landscape Mode the width of the screen is actually the "height"
        newFrame.origin.y = [UIScreen mainScreen].bounds.size.width;

        [UIView animateWithDuration:0.5 
                         animations:^{self.view.frame = newFrame;} 
         completion: ^(BOOL finished) {if(finished) [self.contentViewController.view removeFromSuperview];}];
    }
    else 
    {
        [self.contentViewController.view removeFromSuperview];
    }
    isPresented = NO;
    [self.delegate customPopoverDidDismissPopover:self];
}

O problema é que, emboraremoveFromSuperView é chamado em qualquer caso - animado ou não, ocontentViewController nunca recebeviewWillDisappear, viewDidDisappear ou mesmoviewDidUnload quando estou lançando ocontentViewController;

Alguém tem uma idéia do porquê? Ou melhor ainda, lançar alguma luz sobre a cadeia de métodos viewWill ... / viewDid ... e quando eles deveriam ser chamados.

questionAnswers(1)

yourAnswerToTheQuestion