2 Stimmen

Wie entlade ich einen aufgeploppten View-Controller?

Verwenden eines navigationsbasierten Ansichtshierarchie. Ich habe einen Stammansichts-Controller und mehrere Ansichts-Controller, die sich von diesem Zweig abspalten, wenn eine Schaltfläche gedrückt wird. Wenn ein Benutzer die Zurück-Schaltfläche in der UINavigationBar drückt, wird der aktuelle Ansichts-Controller ausgeblendet und die Anzeige kehrt animiert zum Stammansichts-Controller zurück.

Das Problem besteht darin, dass ich möchte, dass die Ansichts-Controller ENTLADEN werden, wann immer sie ausgeblendet werden. Es scheint, als ob sie nicht entladen werden, denn wenn ich zu ihnen zurückgehe, sind sie immer noch im Zustand, in dem sie waren, als sie ausgeblendet wurden.

Wie kann ich die Ansichts-Controller entladen, nachdem ich zum Stammansichts-Controller zurücknavigiert bin?

1voto

Giao Punkte 14109

-viewUnload wird aufgerufen, nachdem die Anwendung eine Benachrichtigung über geringen Speicher erhalten hat.

Es handelt sich um die Standardimplementierung von -didReceiveMemoryWarning, die -viewUnload aufruft.

Was Sie wahrscheinlich tun möchten, ist das, was Sie tun möchten, in -viewDidDisappear basierend auf Ihrer Beschreibung.

0voto

Min Tsai Punkte 2139

Wenn Sie einen ViewController aus einem NavigationController entfernen, sollten keine Referenzen mehr auf den ViewController verbleiben und der ViewController sollte zu diesem Zeitpunkt deallokiert werden. Dies sollte die von Ihnen erwarteten Ergebnisse liefern. Sie können testen, ob der ViewController deallokiert wird, indem Sie einen Breakpoint in der -dealloc-Methode hinzufügen.

Wenn dealloc nicht aufgerufen wird, überprüfen Sie, ob es eine Rückhaltezyklus gibt. Überprüfen Sie insbesondere, ob ein Child-Objekt den ViewController zurückhält.

-3voto

Matt Punkte 1

Warum sollte in -viewDidDisappear nicht [self release]; verwendet werden? Es ist nur wichtig sicherzustellen, dass Sie ein Lazy Loader haben, sodass es bei Bedarf erneut geladen wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X