Удалить представление из истории предыстории - Ionic2
Кто-нибудь знает, как удалить представление из истории предыстории (или стека навигации) в ionic2?
В Ionic я я решил это с помощью
this.$ionicHistory.nextViewOptions({
disableAnimate: true,
disableBack: true
});
Было бы действительно полезно, например, полностью удалить страницу входа моего приложения из истории после успешного входа в систему.
Просто не показывать кнопку "Назад" в таком случае недостаточно, так как терминалы Android получили свою собственную физическую кнопку "Назад" на устройствах.
Я попробовал, после того, как моя функция входа в систему вернула успешное обещание и перед тем, как нажать следующую страницу в стеке:
this.navController.pop();
или
this.navController.remove(this.viewCtrl.index);
но, к сожалению, оба не были успешными: (
Ответы
Ответ 1
obrejacatalin на https://forum.ionicframework.com/t/solved-disable-back-in-ionic2/57457 нашел решение
this.nav.push(TabsPage).then(() => {
const index = this.nav.getActive().index;
this.nav.remove(0, index);
});
поэтому я думаю, что важно сначала нажать следующую страницу, дождаться ответа на обещание, а затем удалить текущий вид
Ответ 2
Чтобы удалить один backview, вам нужно использовать 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
Ответ 3
У меня такая же проблема с Ionic 3
.
Итак, всего лишь два шага к истории reset:
// ...
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