Мне удалось добиться того, что вы ищете, получив ссылку на компонент вкладок, а затем, получив доступ к NavController
с предыдущей вкладки, вызвать метод popToRoot()
:
<!-- #myTabs allow us to get a reference of the tabs -->
<!-- (ionChange) allow us to run our method every time the selected tab is changed -->
<ion-tabs #myTabs (ionChange)="onTabsChange()">
<ion-tab [root]="tab1Root" tabTitle="Home" tabIcon="home"></ion-tab>
<ion-tab [root]="tab2Root" tabTitle="About" tabIcon="information-circle"></ion-tab>
<ion-tab [root]="tab3Root" tabTitle="Contact" tabIcon="contacts"></ion-tab>
</ion-tabs>
А потом:
// Angular
import { Component, ViewChild } from '@angular/core';
// Pages
import { AboutPage } from '../about/about';
import { ContactPage } from '../contact/contact';
import { HomePage } from '../home/home';
// Tabs
import { Tabs } from 'ionic-angular';
@Component({
templateUrl: 'tabs.html'
})
export class TabsPage {
@ViewChild('myTabs') tabRef: Tabs;
tab1Root = HomePage;
tab2Root = AboutPage;
tab3Root = ContactPage;
onTabsChange() {
// Get the previous tab if any
const previousTab = this.tabRef.previousTab(false);
if(previousTab) {
try {
// Get the navCtrl and pop to the root page
previousTab.getViews()[0].getNav().popToRoot();
} catch(exception) {
// Oops...
console.error(exception);
}
}
}
}