2017-11-30 7 views
1

Wie können Sie am besten zwei Seiten oder N Seiten rückwärts navigieren? Ich habe die remove-Methode verwendet und dann pop, aber ich würde es vorziehen, direkt auf die N-te Seite zurück zu wechseln und nicht vorübergehend zu sehen, dass die Ansichten rückwärts durchlaufen.Ionic 3 - Navigieren oder Zurückblättern N Seiten

+0

Die Seite, die Sie navigieren möchten, eine * root Seite * (kein Backpfeil wird angezeigt)? – sebaferreras

+1

Das ist richtig –

Antwort

1

Da die Seite, die Sie ist eine Root-Seite navigieren möchten, können Sie die Seite als root gesetzt und diesen Übergang animieren, wie folgt aus:

// Will look like you're going to a new page 
this.navCtrl.setRoot(YourPage, {}, { animate: true, direction: 'forward' }); 

Oder

// Will look like you're returning to a previous page 
this.navCtrl.setRoot(YourPage, {}, { animate: true, direction: 'back' }); 

Mehr info: NavOptions docs.


EDIT

ich da nicht diese Lösung bevorzugen, wenn Sie diese den Lebenszyklus der Seite scheint wieder den Konstruktor der Seite Eingabe einmal zurückgesetzt zu sein, dass Sie root auf - Gibt es einen Weg, das zu verhindern?

In diesem Fall könnten Sie popToRoot, auch die Animationen verwenden verwenden, wenn nötig:

this.navCtrl.popToRoot({ animate: true, direction: 'forward' }) 

Oder

this.navCtrl.popToRoot({ animate: true, direction: 'back' }) 
+1

Ich bevorzuge diese Lösung nicht, denn wenn Sie dies tun, scheint der Lebenszyklus der Seite zurückgesetzt zu werden, indem Sie erneut den Konstruktor der Seite eingeben, auf die Sie root setzen - gibt es eine Möglichkeit, das zu verhindern? –

+0

@JayOrdway Hmm, du hast recht! Was ist mit der Verwendung der ** [popToRoot-Methode] (https://ionicframework.com/docs/api/navigation/NavController/#popToRoot) **, auch unter Verwendung der '{animate: true, direction: 'back'}' oder '{animate: true, direction: 'vorwärts'}'? Es würde so aussehen: 'this.navCtrl.popToRoot ({animate: true, direction: 'zurück'})' – sebaferreras

+1

Dies beantwortet meine Frage, funktioniert aber nicht in meinem Fall, denn wenn ich popToRoot oder setRoot verwende, Meine Callback-Funktionen funktionieren nicht. Ich gebe Callbacks weiter, um Versprechen in der wiederkehrenden Komponente auszulösen, um beim Puffen auf Parameter zugreifen zu können. Gibt es eine Möglichkeit, dies mit PopToRoot zu tun? Grundsätzlich - gibt es eine Möglichkeit, mit popToRoot N Seiten zurückzugehen und Params an die Root-Seite zurückzugeben? –

Verwandte Themen