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

Swift iOS开发:反向Segue后Tab Bar Controller底部Tab栏不显示

嘿,我来帮你搞定这个TabBar消失的问题!

问题根源

你现在用Segue直接跳回TabBarController,其实是重新创建了一个TabBarController实例,而不是回到原来那个已经存在的实例。新实例因为没有正确继承原有的导航层级关系,底部TabBar自然就不显示了。

解决方案一:用导航栈pop返回(推荐)

既然你的WebView页面是从表格VC(TabBar的子页面)push过来的,直接用导航控制器的pop方法返回就好,完全不用Segue:
在WebView所在的ViewController里,给返回按钮添加点击事件:

@IBAction func backButtonTapped(_ sender: UIButton) {
    // 直接回到上一个页面(表格VC),TabBar会自动恢复显示
    self.navigationController?.popViewController(animated: true)
}

解决方案二:用Unwind Segue返回(适合特殊场景)

如果你一定要用Segue来实现,得用Unwind Segue(专门用来回到导航栈中已存在的VC,而非新建实例),步骤如下:

  1. 打开你的TabBarController对应的Swift类,添加一个unwind方法:
@IBAction func unwindToTabBarController(segue: UIStoryboardSegue) {
    // 这里可以写返回后的逻辑,比如刷新数据
}
  1. 回到Storyboard,选中WebViewVC的返回按钮,按住Control键拖到WebViewVC顶部的「Exit」图标上,选择刚才创建的unwindToTabBarController方法。
  2. 这样设置后,点击返回按钮就会回到原来的TabBarController实例,底部TabBar就能正常显示了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:54:58