使用Ionic 4和选项卡。假设我们有Tab1 / Tab2 / Tab3,其中Ionic生成了默认应用。我想使用硬件后退按钮,如果我在Tab1中,则退出应用程序,但是如果我在其他标签中,则需要返回Tab1。
目前,我的代码有效,但是:例如,如果我在Tab2中,则使用硬件后退按钮,则路由有效,我被重定向到Tab1,但Tab2图标保持选中状态。 (Tab1图标也已选择,但由于我已被路由到此选项卡,因此是正常的)
tabs.html:
<ion-tab-bar slot="bottom">
<ion-tab-button tab="tab1">
<ion-icon name="flash"></ion-icon>
<ion-label>Tab One</ion-label>
</ion-tab-button>
<ion-tab-button tab="tab2">
<ion-icon name="apps"></ion-icon>
<ion-label>Tab Two</ion-label>
</ion-tab-button>
<ion-tab-button tab="tab3">
<ion-icon name="send"></ion-icon>
<ion-label>Tab Three</ion-label>
</ion-tab-button>
</ion-tab-bar>
Tab1.ts:
ionViewWillEnter() {
this.subscription = this.platform.backButton.subscribe(() => {
navigator['app'].exitApp();
});
}
Tab2.ts:
ionViewWillEnter() {
this.subscription = this.platform.backButton.subscribe(() => {
this.navCtrl.navigateRoot('/tabs');
});
}
在Tab2.ts中,navcontroller很好地路由到/ tabs(这意味着,在路由规则中,转到tab1。)当然,在两种情况下,订阅都是在ionViewDidLeave生命周期挂钩中取消订阅的。
但是无论如何,当使用硬件后退按钮导航到tab1时如何不选择tab2图标?就像是否已通知选项卡栏已选择tab1(因为已自动选择Tab1图标),但未通知选项卡栏取消选择Tab2图标一样。这意味着我在标签栏中选择了两个图标。
谢谢
我有完全相同的问题...我试图更改选项卡中的样式,但没有任何结果。
我听说过ActivatedRoute也可能是一个问题-但我已将代码放到我的文件中,但是什么也没发生,它看起来好像ActivatedRoute没有更新。这里有示例讨论:https://github.com/ionic-team/ionic/pull/17888
我希望回答这个问题可以有所帮助,但这里也没有任何回应:https://github.com/ionic-team/ionic/issues/19953
也许您找到了解决它的方法,并且想要分享?