This question and its answers (copied below) provide a solution for handling the back button in Ionic, but that solution only works when other pages are pushed directly from app.component
, in which case calling canGoBack
and getActive()
on this.nav
works correctly because other pages have been pushed using this.nav.push
in app.component
.
However if a page is pushed from one of the pages in the tabs (lets call it page1
), i.e. by calling this.navCtrl.push()
in page1
, then this.nav.canGoBack()
in app.components
still resolves to false because the push happened using the page1's
this.navCtrl.push()
not app.component's this.nav.push()
.
How can I detect inside app.components
if a page was pushed from any of pages in the tabs?
platform.registerBackButtonAction(() => {
if(this.nav.canGoBack()){
this.nav.pop();
}else{
if(this.alert){
this.alert.dismiss();
this.alert =null;
}else{
this.showAlert();
}
}
});
});
}