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

UITabBarController仅显示单个标签页问题求助

解决UITabBarController标签页点击前不显示的问题

你当前的问题是因为设置了UINavigationController的title,这个值只会同步到导航栏的标题,不会自动映射到TabBar的标签标题。TabBar的标签内容是从对应ViewController的tabBarItem属性读取的,所以需要直接配置这个属性。

修改方案1:直接设置导航控制器的tabBarItem

修改代码中设置标题的部分,把导航控制器的title替换为tabBarItem.title,同时可以合并图片设置的逻辑:

@objc func didTapButton(){
    let tabBarVC = UITabBarController()
    
    let vc1 = UINavigationController(rootViewController: FirstViewController())
    let vc2 = UINavigationController(rootViewController: SecondViewController())
    let vc3 = UINavigationController(rootViewController: ThirdViewController())
    
    // 直接配置TabBarItem的标题和图片
    vc1.tabBarItem = UITabBarItem(title: "My Groups", image: UIImage(systemName: "bell"), tag: 0)
    vc2.tabBarItem = UITabBarItem(title: "My Events", image: UIImage(systemName: "star"), tag: 1)
    vc3.tabBarItem = UITabBarItem(title: "Browse Events", image: UIImage(systemName: "person"), tag: 2)
    
    tabBarVC.setViewControllers([vc1, vc2, vc3], animated: false)
    
    tabBarVC.modalPresentationStyle = .fullScreen
    present(tabBarVC, animated: true)
}

修改方案2:在子ViewController中配置TabBarItem

把每个页面的TabBar配置放在各自的ViewController里,比如在FirstViewController的viewDidLoad中添加:

override func viewDidLoad() {
    super.viewDidLoad()
    self.tabBarItem.title = "My Groups"
    self.tabBarItem.image = UIImage(systemName: "bell")
    // 导航栏标题可以单独设置
    self.title = "My Groups"
}

这样主函数里只需要创建并添加ViewController即可,代码结构更清晰:

@objc func didTapButton(){
    let tabBarVC = UITabBarController()
    
    let vc1 = UINavigationController(rootViewController: FirstViewController())
    let vc2 = UINavigationController(rootViewController: SecondViewController())
    let vc3 = UINavigationController(rootViewController: ThirdViewController())
    
    tabBarVC.setViewControllers([vc1, vc2, vc3], animated: false)
    
    tabBarVC.modalPresentationStyle = .fullScreen
    present(tabBarVC, animated: true)
}

两种方案都能让TabBar在初始化时就加载所有标签的标题和图片,无需点击后才显示。

内容的提问来源于stack exchange,提问作者Zoe Wilkie Tomasik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 14:48:16