【问题标题】:Instant set root a page, instead pop it after confirm即时设置root页面,确认后弹出
【发布时间】:2017-02-28 16:03:59
【问题描述】:

我有一个 Ionic 2 应用程序,当用户想要返回时,我需要显示确认警报。

我已经让它工作了:

ionViewCanLeave() {

    return new Promise((resolve, reject) => {
        let confirm = this.alertCtrl.create(
            {
                //title: 'Are you sure?',
                message: this.CONFIRM_EXIT_MSG,
                buttons: [{
                text: 'Si',
                handler: () => {
                    this.stopAfterLeave();
                    resolve();
                },
            },
            {
                text: 'No',
                handler: () => {
                    reject();
                }
            }],
        });

        confirm.present();

        this.customizeConfirmPrompt();
    });
}

ionViewWillLeave(): void {

    this.goToHomePage();
}

public goToHomePage(): void {

    this.navCtrl.setRoot(HomePage,
    {

    },
    {
        animate: true,
        direction: 'back'
    });
}

但问题是:当用户确认返回时,该页面pop() 1秒后返回首页。

就像:主页 --> 一个页面 --> 其他页面 --> 实际页面

我在“实际页面”,当按原生返回按钮或导航栏返回按钮时,我需要将“主页”设置为root,而不是转到“其他页面”然后转到“主页”

【问题讨论】:

  • 如何在goToHomePagesetRoot之前添加这一行this.navCtrl.pop(TheActualPage)

标签: angular typescript ionic2


【解决方案1】:

要转到根页面,您可以使用它

public popToRoot(){
 this.navCtrl.popToRoot();
}


<ion-buttons>
  <button ion-button (click)="popToRoot()" icon-only>
    <ion-icon ios="ios-arrow-back" md="md-arrow-back"></ion-icon>
  </button>
</ion-buttons>

【讨论】:

  • 谢谢。是的,我知道,但是当用户接受确认消息时,我不知道如何执行此操作...当控制通过 resolve (); 的路径时;
  • 因为当用户按下本机后退按钮或导航栏后退时,它会尝试自动弹出实际页面。我需要覆盖此行为。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-21
相关资源
最近更新 更多