Подтвердить что ты не робот

Удалить представление из истории предыстории - Ionic2

Кто-нибудь знает, как удалить представление из истории предыстории (или стека навигации) в ionic2?

В Ionic я я решил это с помощью

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

Было бы действительно полезно, например, полностью удалить страницу входа моего приложения из истории после успешного входа в систему.

Просто не показывать кнопку "Назад" в таком случае недостаточно, так как терминалы Android получили свою собственную физическую кнопку "Назад" на устройствах.

Я попробовал, после того, как моя функция входа в систему вернула успешное обещание и перед тем, как нажать следующую страницу в стеке:

this.navController.pop();

или

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

но, к сожалению, оба не были успешными: (

4b9b3361

Ответ 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