Die beste Methode in iOS, um ein Ereignis zu subskribieren ist ViewDidLoad, aber wenn View geschlossen wird, wird ViewDidUnload() nicht aufgerufen (nur wenn die Speicherwarnung).Monotouch/iOS: Welcher Ort ist der beste, um den Delegierten abzumelden
Welcher Ort ist der beste, um die Veranstaltung abzubestellen?
(Im subviewController abonniere ich ein Ereignis, das die Mainviewcontroller verweisen, beim Aufschneiden der subview zweimal, erhalte ich zwei Ereignisauslöser, weil die Abmelde in ViewDidUnload() nie aufgerufen wird.)
Wie wäre es mit abonnieren/abbestellen in ViewWillAppear/ViewWillDisapper?
public override void ViewWillAppear (bool animated)
{
base.ViewWillAppear (animated);
this.mBL.OrderChanged += HandleOrderChanged;
}
public override void ViewWillDisappear (bool animated)
{
base.VieWillDisappear (animated);
if (this.mBL!=null)
this.mBL.OrderChanged -= HandleOrderChanged;
}
Was bei der Verwendung von ViewWillAppear und ViewWillDisappear falsch ist()? Dann sind keine Überprüfungen erforderlich. Und noch eine Frage zu Ihrer Prüfung: Wenn Sie "View.Window" in ViewDidUnload aufrufen, lädt der "View" -Aufruf die Ansicht nicht erneut? – Krumelur
Ich würde per ViewWillAppear und ViewWillDisappear, danke. – BlueSky
Beachten Sie, dass ViewWillAppear und ViewWillDisappear in einem UINavigationController möglicherweise nicht wie erwartet funktionieren. ViewWillAppear/Disappear wird nicht aufgerufen, wenn ein Controller übergedrückt wird. Ähnliches passiert mit Modal View Controllern. – jonathanpeppers