viewWillDisappear y viewDidDisappear nunca se llaman

Creé mi propia clase para PopoverController (sin subclasificar UIPopoverController) para presentar ViewControllers de la manera que quiero.

CustomPopoverController NO es un UIViewController, sino que tiene un ivar llamado "contentViewController", que es el VC que realmente se mostrará.

Implementé mi propio "despedirPopoverAnimated:" para descartar mi ventana emergente personalizada cuando el usuario toca en cualquier lugar fuera del marco de 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];
}

El problema es que, aunqueremoveFromSuperViewn cualquier caso, se llama a @: animado o no, elcontentViewController nunca recibe tampocoviewWillDisappear, viewDidDisappear o inclusoviewDidUnload cuando estoy lanzando elcontentViewController;

¿Alguien tiene una idea de por qué? O incluso mejor arrojar algo de luz sobre el método de cadena de vistaWill ... / viewDid ... y cuándo se supone que deben llamarse.

Respuestas a la pregunta(1)

Su respuesta a la pregunta