this.navCtrl.push(ToDoPage)
this.navCtrl.setRoot(ToDoPage)
当我使用其中任何一个时,我的应用会导航到正确的位置,但它会在我所在的标签页视图中显示该页面。这是我的主页:
然后当您点击"查看全部"按钮,你可以在下面看到我在待办事项页面上,但我还在主页选项卡中。有没有办法让它当我按下主页上的按钮时,我被带到实际的待办事项标签页?
答案 0 :(得分:2)
要做你想做的事,你不需要.push()
导航堆栈上的页面,这不是离子标签的工作方式。您可以将每个选项卡想象为自己的导航堆栈。使用.push()
或.setRoot()
,您只能修改当前所选标签的堆栈。
要切换标签,您可以使用离子.select()
组件的Tabs
方法。首先,您需要为您的组件添加模板引用,以便在您的打字稿代码中获取它:
<ion-tabs #myTabs>
<ion-tab [root]="tab1Root"></ion-tab>
<ion-tab [root]="tab2Root"></ion-tab>
</ion-tabs>
然后使用Angulars @ViewChild
装饰器访问该组件:
@ViewChild('myTabs') tabRef: Tabs;
当您单击按钮时,您可以选择第二个选项卡(将其放入函数中):
this.tabRef.select(1); // selected tab is an index starting at 0
here你可以找到所有这些的文档。