viewWillDisappear und viewDidDisappear nie aufgerufen werden

Ich meine eigene Klasse für PopoverController (Ohne Unterklassen UIPopoverController) zu präsentieren ViewControllers in der Art, wie ich will.

CustomPopoverController ist NICHT ein UIViewController, stattdessen hat er ein ivar, genannt "contentViewController", das ist die VC, die tatsächlich angezeigt werden.

Implementiert habe ich meine eigene "dismissPopoverAnimated:" zu entlassen meine custom popover, wenn der Benutzer auf eine beliebige Stelle außerhalb des contentViewController Rahmen:

-(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];
}

Das problem ist, dass, obwohl removeFromSuperView heißt in jedem Fall - animiert oder nicht, die contentViewController nie bekommt entweder viewWillDisappear, viewDidDisappear oder sogar viewDidUnload wenn ich die Freigabe der contentViewController;

Hat jemand eine Idee warum?
Oder noch besser, werfen etwas Licht auf die Kette von viewWill.../viewDid... - Methode und, wenn Sie denn aufgerufen werden.

  • Wenn CustomPopoverController ist NICHT ein UIViewController.. was ist dann CustomPopoverController? self.contentViewController.view removeFromSuperview]; Ich glaube, rufen die viewWillDisappear in ContentViewController
  • CustomPopoverController ist meine eigene Klasse, abgeleitet direkt von NSObject. Und mein problem ist, viewWillDisappear NICHT als contentViewController als erwartet. Das ist genau das, was ich versuche zu erreichen.
InformationsquelleAutor Avi Shukron | 2011-05-05
Schreibe einen Kommentar