2016-07-14 27 views
10

Qualcuno sa come rimuovere una vista dalla cronologia posteriore (o stack di navigazione) in ionic2?Rimuovere una vista dalla cronologia posteriore - Ionic2

In ionico 1 Ho risolto questo con

this.$ionicHistory.nextViewOptions({ 
    disableAnimate: true, 
    disableBack: true 
}); 

sarebbe veramente utile, ad esempio, per rimuovere completamente la pagina di login della mia applicazione dalla storia una volta il login con successo è stato eseguito.

Proprio non mostrando il pulsante Indietro non è sufficiente in tal caso, dal momento che i terminali Android hanno il loro pulsante posteriore fisico sui dispositivi.

ho provato, dopo la mia funzione di login restituito una promessa di successo e prima di spingere la pagina successiva nello stack:

this.navController.pop(); 

o

this.navController.remove(this.viewCtrl.index); 

ma purtroppo entrambi non hanno avuto successo :(

risposta

15

obrejacatalin su https://forum.ionicframework.com/t/solved-disable-back-in-ionic2/57457 ha trovato la soluzione

this.nav.push(TabsPage).then(() => { 
    const index = this.nav.getActive().index; 
    this.nav.remove(0, index); 
}); 

quindi credo che sia importante per spingere la pagina successiva prima, attendere la risposta promessa e quindi rimuovere la vista corrente

+0

Questo doen't davvero rispondere alla domanda di OP: stava chiedendo per la rimozione di "una pagina" non è tutto di loro. –

+1

Beh, sì, si rimuove solo una pagina e inoltre sono l'OP e ho risposto alla mia domanda, quindi sì, ha sicuramente risolto la mia domanda;) –

+1

@DavidDalBusco aveva una risata in questo – alsco77

10

Per togliere uno backview è necessario utilizzare startIndex e conteggio delle pagine per rimuovere dalla pila.

this.navCtrl.push(NextPage) 
    .then(() => { 
     const startIndex = this.navCtrl.getActive().index - 1; 
     this.navCtrl.remove(startIndex, 1); 
    }); 

Vedere questo documento per ulteriori opzioni come removeView (viewController): https://ionicframework.com/docs/v2/api/navigation/NavController/#remove

Problemi correlati