You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

重写默认TabBarController:实现非关联页面TabBar持续显示并高亮板块

解决TabBar在板块子页面消失及高亮问题

核心问题根源

你之前的做法完全错了——在每个子页面单独加TabBarController是冗余且错误的,正确的架构应该让TabBarController作为整个应用的根控制器,每个Tab对应的是一个独立的UINavigationController,板块内的所有页面都push到这个导航栈里,这样TabBar会自动保持显示,且当前板块的TabItem始终高亮。

具体修复步骤

  • 重构Storyboard结构
    把TabBarController设为应用的根控制器;给每个TabBarItem绑定一个UINavigationController(而非直接绑定板块首页面);将板块首页面设为对应导航控制器的根视图控制器;板块内的后续页面通过导航控制器的push方式跳转,不要用present或者单独加TabBarController。

  • 正确的页面跳转方式
    在板块首页面中,跳转到后续页面时用以下代码:

    let nextVC = self.storyboard?.instantiateViewController(withIdentifier: "你的后续页面ID") as! 后续页面类名
    self.navigationController?.pushViewController(nextVC, animated: true)
    

    如果用Storyboard Segue,选择**Show (Push)**类型,不要选Present Modally——后者会把页面全屏弹出,覆盖TabBar。

  • 清理错误代码
    删掉所有后续页面里手动添加TabBarController的代码,这些完全没必要,反而会破坏TabBar的状态管理。

这样调整后,不管你在板块内跳转到第几层页面,底部TabBar都会一直显示,且当前所在板块的TabItem会保持高亮状态。

内容的提问来源于stack exchange,提问作者Ron Myschuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 21:15:03