Ich habe ein Problem für die Navigation in meiner App. Ich benutze xamarin.forms, wie kann ich meinen Navigationsstapel reinigen. Keine Verwendung Pop und Push. Kann ich meinen vollständigen Navigationsstapel sehen?Wie lösche ich den Navigationsstapel?
Antwort
In der neuesten Version von Xamarin.Forms können Sie Ihren Navigationsstapel mit
Navigation.NavigationStack
daher könnten Sie ein
var existingPages = Navigation.NavigationStack.ToList();
foreach(var page in existingPages)
{
Navigation.RemovePage(page);
}
Dieser Code hinter einem müßte gehen in Ihren Code verwenden sehen Navigationsseite oder etwas, das INavigation implementiert.
Weitere Informationen Xamarin.Forms.INavigation Members
Dies ist eine Funktion, die ich gemacht, den Stapel zu leeren und zu einer bestimmten Seite zu navigieren. (Der Anwendungsfall war die App wurde deaktiviert während des Gebrauchs und ich brauche den Benutzer rausschmeißen)
public async Task PopAllTo(ViewModel vm)
{
if (vm == null) return;
Page page = PreparePage(vm); //replace 'page' with the page you want to reset to
if (page == null) return;
_navigation.InsertPageBefore(page, _navigation.NavigationStack.First());
await _navigation.PopToRootAsync();
}
Funktioniert perfekt –
Sie können versuchen, diese ...
public void ResetNavigationStack()
{
if (_navigation != null && _navigation.NavigationStack.Count() > 0)
{
var existingPages = _navigation.NavigationStack.ToList();
foreach (var page in existingPages)
{
_navigation.RemovePage(page);
}
}
}
und BOOOM !!! dieser nav-stack ist abgeräumt, brotha!
Oder wenn Sie wollen, setzen Sie den modalen Stapel
public async Task<Page> PopAllModals()
{
Page root = null;
if (_navigation.ModalStack.Count() == 0)
return null;
for (var i = 0; i <= _navigation.ModalStack.Count(); i++)
{
root = await _navigation.PopModalAsync(false);
}
return root;
}
Und BOOOM! Diese Modale sind weg!
- 1. Wie lösche ich den Standardkonstruktor?
- 2. Wie lösche/lösche ich den Inhalt eines Tkinter Text Widgets?
- 3. Wie lösche ich den Inhalt eines IFRAME?
- 4. Wie lösche ich den Canvas in Android?
- 5. Wie lösche ich den Cache einer App?
- 6. Wie lösche ich den Bildlauf im Bildschirmbefehl?
- 7. Wie lösche ich JTextArea?
- 8. Wie lösche ich eine Zeichenfolge?
- 9. Wie lösche ich eine Prozessbefehlszeile?
- 10. Koolwired.Imap - Wie lösche ich Nachrichten?
- 11. Wie lösche ich einen Cookie?
- 12. Steuern von Änderungen im Navigationsstapel
- 13. Wie lösche ich einen Edelsteinpfad?
- 14. Wie lösche ich eine Flaschensitzung?
- 15. Wie lösche ich Dateien programmatisch?
- 16. Wie lösche ich wirklich Vektoren
- 17. Wie lösche ich den Textinhalt eines div in Javascript?
- 18. Wie lösche ich den Inhalt eines Ordners in Python?
- 19. Wie lösche ich den Lack-Cache für Knoten-Warteschlangen?
- 20. Wie lösche ich den Server-Cache in asp.net?
- 21. Wie lösche ich den Wert einer Point-Struktur?
- 22. Wie lösche ich den letzten Git Commit in Bitbucket?
- 23. Wie lösche ich den lokalen Speicher in IE11?
- 24. Wie lösche ich den isolierten Speicher einer anderen Anwendung?
- 25. Python | Wie lösche ich den letzten Eintrag in der Liste?
- 26. Wie lösche ich den Datensatz aus der Tabelle?
- 27. Wie lösche ich den Navigationsverlauf in Silverlight/Windows Phone 7?
- 28. Wie lösche ich den Zustand von Emacs Calc vollständig?
- 29. Wie lösche ich alle Zeilen, die den spezifischen Wert enthalten
- 30. Wie lösche ich den Text in einem auto-complete-Feld?
Großartig, ich benutze alte Version und habe keine NavigationStack – Ibrahim
@ibrahim Sie können Ihre Version über Nuget aktualisieren. Gehen Sie zu Referenzen in Ihrem Projekt und klicken Sie mit der rechten Maustaste und klicken Sie auf nuget-Pakete verwalten. Dann wählen Sie Updates und installieren Xamarin.Forms Update – user1
Ja, ich weiß, ich habe nur den Grund für die Frage geschrieben. Denn mit der neuen Version ist diese Frage dumm. danke – Ibrahim