Ich schreibe meinen eigenen SplitViewController von Grund auf (d. H. Durch Unterklassen UIViewController
und nicht UISplitViewController
).Kodierung benutzerdefinierter SplitViewController - wann sollte ich viewWillAppear, viewDidAppear, etc ... aufrufen?
Es hat zwei UnteransichtControllers (eine für das linke Panel und eine für das Detail rechten Panel), an die ich die entsprechenden Nachrichten senden muss (viewWillAppear, viewDidAppear, viewWillDisapppear and viewDidDisappear
).
Ich weiter diese Nachrichten, wenn meine benutzerdefinierte SplitViewController sie empfängt und es funktioniert gut. Ich habe jedoch Schwierigkeiten herauszufinden, wann ich sie senden soll, wenn einer der beiden Subview-Controller durch einen neuen ersetzt wird, der diese Nachrichten ebenfalls empfangen muss. Ich füge die Ansicht des neuen UIViewController
richtig hinzu, aber die Nachrichten werden nicht angemessen genannt.
Mein erster Ansatz war sie in dem Setter des Unterviewcontrollers zu rufen, rief viewWillDisappear
-UIViewController
um auf die neuen UIViewController
-Sets und viewWillAppear
werden, aber diese vor viewDidLoad
ausgeführt wird, und deshalb nehme ich an, ist falsch.
Ich habe auch gesehen, dass UIView hat eine Methode didAddSubview:
, die nützlich sein kann, um zu wissen, wann viewDidAppear
auf dem Korrespondenten UIViewController
aufrufen.
Jede Hilfe wäre sehr willkommen!
ich auch, dass manchmal bemerkt habe -viewWillAppear: (? Oder war es -viewWillDisappear) automatisch aufgerufen wird, wenn Sie fügen eine VC-Sicht zur Hierarchie hinzu/entfernen sie. Zugegebenermaßen wurde dies oben in der View-Hierarchie gemacht, um benutzerdefinierte View-Übergänge zu implementieren, aber es lohnt sich, daran zu denken. Außerdem denke ich, dass es etwas gibt, das UIViewControllerWrapperView heißt ... –
Soweit ich weiß, tut dies der Basis-UIViewController nicht, aber hierarchische Typen wie UINavigationController, UITabBarController usw. tun dies. –
Danke dafür David Liu. Ich fand auch, dass überschreiben - (void) didAddSubview: (UIView *) Unteransicht in Ihrer benutzerdefinierten UIView kann sehr nützlich sein, so dass die benutzerdefinierte UISplitViewController seine Sub-UIViewControllers, dass viewDidAppear benachrichtigen kann. – monchote