I am porting my Ionic 3 app to Ionic 4. I have switched over to using the new routing, with lazy loaded modules etc.
I have a side menu where I can select my main pages from any other page.
However, whenever I click the back button from one of the main feature pages, I always want to go back to the main home page (and not back to perhaps another feature page in the current route stack)
The click handler code in the Ionic 4
version for the side menu selection is as follows (pageItem.pageRoutePath contains the new route)
public openPage(pageItem: AppPageItem): void {
try {
this.logger.debug(`openPage ${pageItem.title}`);
// Try to force homepage to be where the back button takes us (but this doesn't seem to work)
this.navController.navigateRoot(Constants.vals.pageRoutePaths.home, { replaceUrl: true });
if (pageItem.pageRoutePath != Constants.vals.pageRoutePaths.home) {
this.navController.navigateForward(pageItem.pageRoutePath);
}
} catch (error) {
this.logger.error(`openPage ${error}`);
}
}
The { replaceUrl: true }
parameter was me experimenting trying to get this to work, but it did not make any difference.
In Ionic 3
I could do what I am describing as follows…
this.nav.setRoot(HomePage);
if (pageItem.page != HomePage) {
this.nav.push(pageItem.page);
}
I don’t want this from every page, just my feature pages, eg some of the feature pages navigate to "details: pages, and here I do want the back button to just return back to the page it was navigated from, ie the default behavior. Also, I do have one feature page where I do open it as a details fro another feature page, so in this case i do want the detail behaviour of the back button.
So, I just really want to switch the behaviour when the page is opened from this side menu.
Does anyone know how I can achieve this in Ionic 4
?
Thanks in advance for any help