Ionic2のバック履歴(またはナビゲーションスタック)からビューを削除する方法を知っている人はいますか?
In Ionic 1私はこれを解決しました
this.$ionicHistory.nextViewOptions({
disableAnimate: true,
disableBack: true
});
たとえば、ログインが正常に実行されたら、履歴からアプリケーションのログインページを完全に削除する場合など、非常に便利です。
Android端末がデバイス上に独自の物理的な戻るボタンを取得したため、このような場合、戻るボタンを表示しないだけでは十分ではありません。
ログイン関数が成功したプロミスを返した後、スタックの次のページをプッシュする前に試しました。
this.navController.pop();
または
this.navController.remove(this.viewCtrl.index);
しかし、残念ながら両方とも成功しませんでした:(
https://forum.ionicframework.com/t/solved-disable-back-in-ionic2/57457 のobrejacatalinは解決策を見つけました
this.nav.Push(TabsPage).then(() => {
const index = this.nav.getActive().index;
this.nav.remove(0, index);
});
だから、最初に次のページをプッシュし、約束の答えを待ってから、現在のビューを削除することが重要だと思います
1つのバックビューを削除するには、スタックから削除するstartIndexとページ数を使用する必要があります。
this.navCtrl.Push(NextPage)
.then(() => {
const startIndex = this.navCtrl.getActive().index - 1;
this.navCtrl.remove(startIndex, 1);
});
RemoveView(viewController)などのその他のオプションについては、このドキュメントを参照してください。 https://ionicframework.com/docs/v2/api/navigation/NavController/#remove
Ionic 3
でも同じ問題が発生しました。
したがって、履歴をリセットするのは2つの手順のみです。
// ...
constructor(public navCtrl: NavController) { }
// ...
this.navCtrl.setRoot(NewPageWithoutPrev);
this.navCtrl.popToRoot();
// ...
リンク:
https://ionicframework.com/docs/api/navigation/NavController/#setRoot
https://ionicframework.com/docs/api/navigation/NavController/#popToRoot