2017-01-30 3 views
0

Ich baue eine App mit ionischen 2 und meine Frage betrifft die Navigation, ist es nicht leicht zu erklären, aber ich werde versuchen:Navigation NavController in Ionic 2 App Gelöst! aber nicht in Ionic 3

Ich habe eine Seite (MyFilePage), mit einer Liste von Dateien aus einer Cloud, in denen ich die navCtrl.push() darauf, für die rekursive Navigation in Ordnern. Auf dieser Seite habe ich einen ion-fab-Button, der mich mit push() zu einer anderen Seite (UplaodPage) schickt, mit der Liste der Dateien im Speicher des Gerätes. Auf dieser Seite erinnere ich die Methode push() darauf, wie die andere Seite, für die rekursive Navigation in Ordnern. Danach wähle ich die Datei aus, die ich hochladen möchte, und was ich tun möchte, ist die Rückkehr zur letzten MyFilePage, die ich besucht habe (die, wo ich den Uplaod mache).

Ich poste ein Bild, ionic 2 app strucure, das kann die Situation klären.

Dank

EDIT: Dieses auf Ionic 2 mit dem Verfahren Push schön funktioniert (Seite: jeder, params ?: vorhanden, entscheidet sich ?: NavOptions, getan ?: Funktion) ;, aber nicht in Ionic 3, die haben die Methode push (page: Seite | string, params ?: any, opts ?: NavOptions, done ?: Funktion): Promise ;, wobei page type von Page | string ist und die Methode getByIndex() einen ViewController zurückgibt.

Wer hat eine Lösung? Dank

Antwort

0

Wenn Sie Seiten halten:

1- müssen Sie zuerst den Index der Seite, die Sie sichern möchten, erhalten und in einem Provider (empfohlen) oder Lagerung zu speichern.

let index = this.navCtrl.indexOf(this.navCtrl.getActive()); 

2-, dann können Sie auf die gespeicherte Seite aussehen:

let selectedPage = this.navCtrl.getByIndex(index); 
this.navCtrl.push(selectedPage); 

und wenn Sie diese Seiten entfernen mögen:

1- müssen Sie zuerst den Index erhalten die Seite, zu der Sie zurückkehren möchten, und auch einen Zähler, wenn Sie eine Seite drücken. dann speichern Sie sie in einem Anbieter (empfohlen) oder Speicher.

2-, dann können Sie auf die ausgewählte Seite und das andere wie folgt entfernen:

this.navCtrl.remove(startIndex+1, removeCount); 

für weitere Informationen NavController überprüfen.

+0

Mit Ihren Vorschlägen ist der Wert des Index immer -1, Durchsuchen einer beliebigen Seite. Und wenn ich die Variable selectedPage mit this.navCtrl.getByIndex (index) initialisiere; , wobei der Index immer einen Wert von -1 hat, ist diese Variable nicht definiert. –

+0

Sie müssen die View-Variable ersetzen! Ich ändere auch die Antwort. –

+0

Sobald ich etwas Zeit habe, werde ich versuchen, Sie wissen zu lassen. Natürlich hatte ich die View-Variable ersetzt, aber mit this.viewCtrl.index. Vielen Dank! –