在我的應用程序中我有3個選項卡。在第一個選項卡中有一個列表推到另一個頁面(在同一個選項卡內,因此選項卡保留在最下面)。當我切換到另一個選項卡時,我回到第一個選項卡,我仍然在該子頁面。 有沒有辦法永遠去根?問題是在子頁面中我也有鏈接,所以Ionic 2 - How do I get back to the start page of a given tab上的解決方案對我來說並不適用,因爲他在我點擊打開子頁面中的新頁面時也將其重定向到了根目錄。離子2標籤總是回到根頁面
其他解決方案?
在我的應用程序中我有3個選項卡。在第一個選項卡中有一個列表推到另一個頁面(在同一個選項卡內,因此選項卡保留在最下面)。當我切換到另一個選項卡時,我回到第一個選項卡,我仍然在該子頁面。 有沒有辦法永遠去根?問題是在子頁面中我也有鏈接,所以Ionic 2 - How do I get back to the start page of a given tab上的解決方案對我來說並不適用,因爲他在我點擊打開子頁面中的新頁面時也將其重定向到了根目錄。離子2標籤總是回到根頁面
其他解決方案?
你好,我是不那麼合格的,但怎麼樣彈出的頁面推
後,我不知道這將是解決這個問題的最好辦法,但它應該工作。假設這是一個包含所有標籤頁:
<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');
}
爲什麼不在'onSelected'函數中設置'setRoot'? – Duannx
因爲在'onSelected'方法中,我們在TabsPage中,它包含所有的選項卡。我們需要從其中一個子頁面彈出導航堆棧... – sebaferreras
請發表您的代碼,以便它會很容易讓我們弄清楚這個問題比單詞還好 – Gowtham
我明白了,但你需要什麼代碼?所有與此有關的頁面?我有一個普通的tabpage,並且有3個根。如果我點擊第一個根內部(然後我看到孩子),然後切換到另一個標籤並返回,我看到孩子。通過我在問題中提供的鏈接,可以解決這個問題,但是我也有孩子。 有沒有辦法重置到RootPage? –
爲了更好地理解這一點,我建議閱讀關於'NavController' [這裏](https://ionicframework.com/docs/api/navigation/NavController/)的更多信息,以更好地理解它如何與視圖創建。所有這些都在那裏解釋。 – Sam5487