如何在离子 3 中单击设备后退按钮时从选项卡 2 导航到选项卡 1

Posted

技术标签:

【中文标题】如何在离子 3 中单击设备后退按钮时从选项卡 2 导航到选项卡 1【英文标题】:How to navigate from tab2 to tab1 on clicking device back button in ionic3 【发布时间】:2018-04-14 17:49:25 【问题描述】:

我正在关注这个https://ionicframework.com/docs/components/#tabs

登录后,我使用此键导航到下一页 this.navCtrl.setRoot("tabs"); 我会自动看到在我的选项卡中选择的主页选项卡/tab1。

我总共有 5 个标签 Tab1、Tab2、Tab3、Tab4、Tab5。

初始 Tab1 被选中。当我导航到任何选项卡(如 Tab2/Tab3)并单击设备后退按钮时,我无法导航到上一个选项卡。

我的理解:

因为我有 5 个选项卡,所以当每个选项卡被选中时,新堆栈就会启动。

我相信我必须导航到 Stack to Stack 是否可能,如果可以,任何建议都会对我有所帮助。

【问题讨论】:

我认为previousTab(trimHistory) function 可以提供帮助。只需处理后退按钮单击并选择上一个选项卡 如何使用它任何例子都会有很大帮助@Duannx 【参考方案1】:

试试这个: 在 tabs.html

<ion-tabs #myTabs>
    ...
</ion-tabs>

在 tabs.ts 中

  @ViewChild('myTabs') tabRef: Tabs;
  constructor(public navCtrl: NavController, public platform: Platform) 
    platform.ready().then(() => 
      platform.registerBackButtonAction(() => 
        let tabPrv = this.tabRef.previousTab(false);//Remember pass false
        if (tabPrv) this.tabRef.select(tabPrv.index);//Here you go back to prv Tab
        return false;//Make sure return false to prevent exit app
      )
    )
  

【讨论】:

【参考方案2】:
let tabPrv = this.tabRef.previousTab(true); //Remember pass true
if (tabPrv) this.tabRef.select(tabPrv.index);

如果您传递 true,它将记住所有以前的历史记录,如果您传递 false,它将只记住以前的选项卡。

【讨论】:

以上是关于如何在离子 3 中单击设备后退按钮时从选项卡 2 导航到选项卡 1的主要内容,如果未能解决你的问题,请参考以下文章

单击隐藏选项卡视图控制器中的后退按钮时如何显示选项卡

在android中按下后退按钮后如何返回相同的选项卡?

如何使浏览器后退按钮跳过内页导航并返回上一页

离子2:如何处理硬件后退按钮,检查应用程序中退出的确认

单击后退按钮iOS 6时如何继续播放音频

在(后退按钮、前进按钮、关闭选项卡/浏览器)上运行最后一个 Ajax 请求 [重复]