Benachrichtigt werden, wenn ein view-controller ist über geknallt werden in iOS4
Diese Frage wurde vorher gefragt, aber der antwortete, die ich finden konnte, waren ab 2009 und nicht für mein problem. Lassen Sie mich nochmals die Frage.
Ich habe eine UINavigationController
dass laicht und schiebt viele verschiedene UIViewController
s auf den stack. Einer von denen beschäftigt sich mit Core-Operationen mit den Daten, die gespeichert werden müssen, wenn diese eine bestimmte VC bekommen, die spontan aus dem Stapel. Konzentriere dich nicht auf die Core-Daten-Teil, es geht um das knallen.
Wie kann ich den Haken in dem moment, in dem der UIViewController
wird geknallt vom Stapel?
- Ich hatte gehofft, für eine delegate-Methode von einer Art, aber konnte ihn nicht finden. Die
UINavigationControllerDelegate
- Protokoll ist sehr spärlich. - Ich dann begonnen, denken mit
viewWillDisappear
, sondern dass man auch aufgerufen, wenn ein anderes view gedrückt wird auf der stack, so dass es nicht der richtige moment. - Diese Frage geantwortet haben, aus 2009, entscheidet sich, zu betrachten, die
viewWillAppear
von der view-controller, dass wir 'knallen zu', aber da, dass der Anruf nicht mit einem Verweis auf die VC, der muss das prüfen, das ist unbefriedigend und stellen eine Ebene der Abhängigkeit, dass ist kontraproduktiv (das VC ist durch mehrere NCs). - Eine andere Frage geantwortet haben, auch aus 2009, entscheidet sich, Unterklasse UINavigationController und schreiben die popViewControllerAnimated: Methode. Oder verwenden Sie alternativ die VC dealloc. Mein Bauchgefühl sagt mir, dass kann nicht der Weg zu gehen.
- Schließlich gibt es einer letzten Frage ab März 2011, aber niemand kümmerte sich um diese zu beantworten.
Lässt mich in meinem aktuellen unzufrieden Zustand des Geistes. Gibt es jemand da draußen eine bessere Lösung zu finden, die den moment Ihrer UIViewController ist spontan aus einem UINavigationController ist der stack?
Jubel
EP.
- Ich habe das gleiche problem. Allerdings kann ich hinzufügen, einige Informationen nach developer.apple.com/library/ios/#documentation/uikit/reference/... beide viewDidUnload & viewWillUnload sind veraltet unter iOS6
Du musst angemeldet sein, um einen Kommentar abzugeben.
viewWillDisappear
ist die entsprechende Stellvertretung. Sie müssen die Logik in dieser Methode, wenn Sie möchten, um zu bestimmen, wenn die aktuellen Ansicht wird knallte oder eine neue Ansicht wird geschoben. Die wurde hier beantwortet - viewWillDisappear: Bestimmen, ob der view-controller wird geknallt oder zeigt eine sub-view-controllerif (![self.navigationController.viewControllers containsObject:self]) { //POPPED! }
Ich glaube, ich würde gehen in die andere Richtung auf diese, und versuchen Sie, fangen die polling aus den einzelnen viewControllers anstatt der navigationController. Um eine individuelle viewController, immer tauchte wie es aussieht, wird aufgehoben, und das ist völlig aufhängbaren.
UIViewController-Unterklasse, implementieren Sie die Benachrichtigung in seiner
-dealloc
. Sicher sein, rufen Sie[super dealloc]
.Dann haben alle Aussicht, dass Sie schieben Sie in Ihrem Navigations-controller Unterklasse Ihre neue benutzerdefinierte view-controller Unterklasse. Sie können tun, was Sie tun, in Ihrem eigenen viewDidUnload, und rufen Sie dann
[super dealloc]
(in diesem Fallsuper
ist Ihrer UIViewController-Unterklasse), um das Feuer der Benachrichtigung.dealloc
vielleicht?