TabBar 覆盖导航堆栈中的视图控制器内容

Posted

技术标签:

【中文标题】TabBar 覆盖导航堆栈中的视图控制器内容【英文标题】:TabBar overhide view controllers content in navigation stack 【发布时间】:2016-10-27 12:33:31 【问题描述】:

我有一个自定义的 TabBarController 类扩展自 UITabBarController 有三个标签,每个标签都有不同的UINavigationControllerRootViewController。问题是当我推送ViewController 并且视图控制器加载成功但 TabBar 从底部隐藏当前推送的视图控制器的内容。可能是 TabBar 不会自动调整此视图控制器的父视图的大小,或者可能存在任何其他问题。 这是视图的屏幕截图。 我在另一个有四个单元格的视图中有一个表格视图。 tableView 的父视图的顶部、前导、尾随和底部约束为零。 但主视图的底部布局位于 tabBar 下方。我想这就是它隐藏我的内容的原因。 我正在使用 swift 2.2

【问题讨论】:

【参考方案1】:

UINavigationControllerUITabBarController 都具有isTranslucent 的共同属性,如果启用此检查,则当前视图控制器的父视图向上(在导航栏下方)或向下(在标签栏下方)扩展以避免扩展视图对齐或高度只是将半透明属性禁用为 false。

在目标 C 中

self.navigationController.isTranslucent = NO
self.tabbarController.isTranslucent = NO

在斯威夫特中

self.navigationController.isTranslucent = false
self.tabbarController.isTranslucent = false 

【讨论】:

以上是关于TabBar 覆盖导航堆栈中的视图控制器内容的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 导航控制器堆栈问题

管理堆栈上的导航视图

推送视图控制器中的半透明导航栏覆盖?

覆盖 openURL 后无法推送视图控制器

重定向到导航堆栈中间的新视图控制器

从堆栈中弹出导航控制器/创建双视图