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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie hinzufügen, Untersicht oder entfernen Sie die Untersicht, die durch die Methoden von UIView, es nie dazu führen, im Besitz
UIViewController
nennenviewWillAppear
,viewDidAppear
,viewWillDisappear
, undviewDidDisapper
. Nur die viewController verwaltet durch die Methode derUINavigationController
wiepushViewController:animated:
oderpopViewControllerAnimated:
oderpresentModelViewController:aniamted:
... etc. Sie informieren über den status ändert sich für die Sicht der controller.A
undB
UIViewControllers. Und jetztview
vonA
erschienen ist, dann rufen Sie[A.view addSubView:B.view]
. TutviewWillAppear
vonB
genannt werden ?