应用场景:项目下面有4个tabs导航,每个导航下有干个子页面
项目需求:产品要求要从第一个tab导航下的第n个页面添加返回按钮,点击返回第二个tab首页。即重就医下的子页面返回到互联网医院。
实现尝试:
1.this.navCtrl.popToRoot();
改方法只能返回到当前子页面所在的tab首页。
2.this.navCtrl.parent.select(n),
n为tabs下标,重0开始,同上,如果是在当前tab下子页面执行,可以正常返回,否则只能路由返回页面不跳转
3.this.navCtrl.parent.select(n)
this.navCtrl.push('MainTabsPage',{//MainTabsPage 即是tabs控制页 需是字符串,不然会报错。
params:{
tabindex:1
}
} )
执行2之后添加跳转tabs控制页,并且传参tabindex,表明要返回到第几个tab并在MainTabsPage页添加判断如下;
if(this.navParams.data.params && this.navParams.data.params.tabindex){
this.tabRef.select(n);
this.navParams.data.params.tabindex=null;
}
判断参数是否存在,如果存在跳转第n 个tab首页。然后把参数清空,不然每次tab切换都会执行跳转。
如下:
2.
this.navCtrl.goToRoot(null);
this.navCtrl.parent.select(1);