ionic 2 Tabs总是返回rootPage

时间:2017-06-29 15:17:21

标签: ionic-framework ionic2

在我的应用中,我有3个标签。在第一个选项卡中有一个列表推送到另一个页面(在同一个选项卡内,因此选项卡保留在底部)。当我切换到另一个选项卡,然后我返回到第一个选项卡,我仍然在该子页面。 有没有办法永远去根。问题是在子页面内部我也有链接,因此Ionic 2 - How do I get back to the start page of a given tab上的解决方案对我不起作用,因为当我点击孩子中的新页面时,他也将我重定向到根目录。

还有其他解决方案吗?

2 个答案:

答案 0 :(得分:0)

您好,我不是那么合格,但推送

后弹出页面怎么样

答案 1 :(得分:0)

我不确定这是否是修复它的最佳方法,但它应该有效。假设这是包含所有选项卡的页面:

<ion-tabs>
  <ion-tab [root]="chatRoot" (ionSelect)="onSelected(0)" tabTitle="First tab"></ion-tab>
  <ion-tab [root]="chatRoot" (ionSelect)="onSelected(1)" tabTitle="First tab"></ion-tab>
  <ion-tab [root]="chatRoot" (ionSelect)="onSelected(2)" tabTitle="First tab"></ion-tab>
</ion-tabs>

在组件代码中:

import { Events } from 'ionic-angular';

// ...

constructor(public events: Events) {}

public onSelected(index: number): void {
  if(index) this.events.publish('TabSelected');
}

所以基本上,当用户选择除第一个标签以外的任何标签(索引等于0)时,我们会发布一个事件。

在FirstTab中,我们可以订阅该事件,并使用this.navCtrl.popToRoot()关闭该标签内打开的页面:

// FirstTabCode
import { NavController, Events } from 'ionic-angular';

// ...

constructor(public navCtrl: NavController, public events: Events) {
  this.events.subscribe('TabSelected', () => { this.navCtrl.popToRoot(); });
}

ngOnDestroy() {
  this.events.unsubscribe('TabSelected');
}