我想知道如何在使用选项卡时返回appComponent
中定义的rootpage。setroot方法无法正常工作。当在选项卡页面中使用时,导航堆栈未清除。在"主页"上,可见返回按钮,而不是导航切换,并显示了选项卡的标题。
默认情况下,页面被缓存,如果它们被导航,则将其留在DOM中 远离但仍在导航堆栈中 例如,push())。当从 导航堆栈(on Pop()或setRoot())。
上面的语句使我期望我使用setroot页面时从缓存中清除。当它在普通页面中使用而不在选项卡中时,这似乎是正确的。
在选项卡页面的类中,有一个函数将root Page设置为"单击"按钮时。
goToHome() {
this.navCtrl.setRoot(HomePage);
}
如何确保当我们返回主页时,没有后面按钮,并且使用了组件HTML模板中可用的房屋标题。
就像您在文档中看到的一样
请注意,每个
<ion-tab>
都绑定到[root]
属性,就像 在上面的导航部分中。那是因为每个<ion-tab>
实际上只是导航控制器。这意味着每个 TAB具有其自己的历史记录堆栈,并且注入NavController
实例 每个选项卡的儿童@Components
将是每个选项卡的独特之处
因此,将页面设置为root时,您正在使用该选项卡中的导航堆栈,而不是整个应用程序中的一个。这就是为什么您需要通过以下方式获得主要导航堆栈的原因:
constructor(private app: App,...) {...}
,然后
yourMethod(): void {
this.app.getRootNav().setRoot(YourPage);
}
尝试一下,它对我效果很好
this.childNavCtrl.setRoot(HomePage);