导航标题栏出现故障,返回时显示灰色背景

时间:2018-09-27 19:51:52

标签: swift uinavigationcontroller uinavigationbar

此gif可以帮助您了解我的问题是什么

enter image description here

在我的某些导航控制器上,我以前从未遇到过此问题,并且在调试该问题时遇到了困难。

复制步骤:克隆https://github.com/Jasperav/GlitchedNavigationBar

  1. 创建新项目
  2. 将现有的viewcontroller嵌入到标签栏控制器中
  3. 将相同的viewcontroller嵌入导航栏控制器中
  4. 在情节提要中添加新的视图控制器
  5. 在新的视图控制器上,点击在“推送”时隐藏底部栏(这会导致问题)
  6. 在第一个视图控制器中添加一个按钮,该按钮将显示新的视图控制器。现在我们有了问题。

我正在运行Xcode 10和Swift 4.2

1 个答案:

答案 0 :(得分:1)

之所以发生这种情况,是因为导航栏是半透明的,并且在导航栏下方显示了控制器的一部分。顶部控制器中有一个地图,当您向后导航时,它会在导航条下为其动画,这就是闪烁的原因。

要仅在一个控制器中更改导航按钮的半透明效果,需要将其添加到viewDidLoad方法:

navigationController?.navigationBar.isTranslucent = false

或者如果您想全局更改它,则将其添加到应用程序委托中的didFinishLaunchingWithOptions方法中:

UINavigationBar.appearance().isTranslucent = false