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

如何代码启动其他故事板的UITabBarController并显示UITabBar?

解决UITabBar不显示的问题

嘿,我懂你碰到的情况了!你现在直接present了Test.storyboard里的子控制器AVC,但UITabBar是属于UITabBarController的专属组件——只有当你展示这个TabBarController本身时,它才会负责管理底部的TabBar以及子控制器的切换逻辑。直接present子VC的话,相当于绕过了TabBarController的管理,自然就看不到TabBar啦。

正确的解决步骤:

  1. 给Test.storyboard里的UITabBarController设置Storyboard ID

    • 打开Test.storyboard,选中UITabBarController
    • 在右侧属性面板的「Identity Inspector」中,给它设置一个唯一ID,比如MainTabBarController
  2. 修改点击事件代码,改为实例化并present这个TabBarController:

@objc func startMatching(sender: UITapGestureRecognizer) {
    let storyBoard: UIStoryboard = UIStoryboard(name: "Test", bundle: nil)
    // 实例化TabBarController而非子VC
    let tabBarVC = storyBoard.instantiateViewController(withIdentifier: "MainTabBarController") as! UITabBarController
    // 可选:如果需要默认选中AVC(假设AVC是第一个子控制器,index为0)
    tabBarVC.selectedIndex = 0
    self.present(tabBarVC, animated: true, completion: nil)
}

额外说明:

  • 如果你的UITabBarController已经在storyboard里把AVC设为初始显示的控制器,那selectedIndex = 0这一行可以省略,默认就会显示AVC
  • 这样present之后,TabBarController会正常管理它的所有子VC(AVC和BVC),底部的TabBar也会正常显示并支持切换功能

内容的提问来源于stack exchange,提问作者Noble Dinasaur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:55:41