2016-06-22 7 views
0

[Xamarin.Forms]Prism.Forms: Wie wird die Seite, von der navigiert wurde, entfernt?

Ich habe einen Fall, in dem ich auf der Anmeldeseite bin und nachdem der Benutzer die Anmelde-Taste gedrückt habe, benutze ich den Navigationsdienst, um zur MainPage zu gelangen. Das Problem ist, dass "LoginPage" noch aktiv ist und Ereignisse empfängt und mit ihnen interagiert, wie zum Beispiel die Login-Schaltfläche, wenn ich "Enter" von der Tastatur oder dem Entfernen-Steuerelement drücke. So ist es eine Möglichkeit, loszuwerden, die „Loginpage“ zu bekommen, damit es nicht auf Tastaturereignis (standardmäßig in Android zur Verfügung gestellt) hört. Sonst gibt es eine Möglichkeit, die "LoginPage" zu entsorgen, nachdem ich von ihm navigieren?

Antwort

2

Navigation aus einer Ansicht entfernt zu einem anderen unter Verwendung von Prism INavigationService.NavigateAsync nicht der Seite aus dem Navigationsstapel entfernen. Es schiebt einfach eine andere Ansicht auf den Stapel. Daher wird es nicht GC'd sein. Sie müssen die Seite aus dem Navigationsstapel entfernen, indem Sie bei der Navigation entweder einen absoluten URI verwenden oder die Seiten manuell mit den XF-APIs entfernen.

+0

Danke Mann ein absoluter Uri gearbeitet :) wäre schön, das von eurer Seite Jungs zu verbessern, denn mit www.something.com/ViewAPage könnte nicht die netteste Sache sein! Aber wahrscheinlich hast du das sowieso im Kopf. – BraveHeart

+0

Sorry, aber das ist die Definition eines absoluten URI. –

+0

@BrianLagunas navigationService.GoBackAsync() Seite nicht verfügbar. Gibt es einen Grund, die Seite nicht auf GoBackAsync zu veröffentlichen? –