Swift 3:如何反转一个透明的导航栏?

我试图创build一个叽叽喳喳的应用程序,模拟真正的应用程序,使用twitter API。 在时间轴视图中,我有一个常规导航栏,当用户点击用户configuration文件时,configuration文件视图具有一个透明栏,以便显示用户的标题图像。 我用下面的代码在导航栏在用户configuration文件视图中是透明的:

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) self.navigationController?.navigationBar.shadowImage = UIImage() self.navigationController?.navigationBar.isTranslucent = true 

我遇到的问题是当我从configuration文件视图返回,时间轴导航栏已成为混乱(下面的截图)。 我猜这是因为我改变了视图控制器中的导航栏的一些方面的configuration文件视图,当我回到时间轴视图结转。

我怎样才能扭转导航栏的透明度,以解决这个不稳定的导航栏? 在时间轴视图控制器中我尝试使用下面的代码来尝试将其反转,但它不起作用。

 self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default) self.navigationController?.navigationBar.shadowImage = nil self.navigationController?.navigationBar.isTranslucent = false 

带有定期导航栏的时间轴视图

带有定期导航栏的时间轴视图

configuration文件视图与透明的导航栏

配置文件视图与透明的导航栏

从configuration文件视图返回后,用随机的导航栏的时间轴视图

从配置文件视图返回后,用随机的导航栏的时间轴视图

类似的情况也发生在我身上。 后来,我注意到我没有改变正确的生命周期方法中的导航项目的属性。 使其不透明,在viewWillAppear时间轴视图控制器中,并使其在离开时间轴视图控制器之前透明,在viewWillDisappear 。 这可能与此有关吗?

@朱连,我和你有同样的问题。 我有一个红色导航栏的主视图,并希望详细视图导航栏是透明的。 我设法得到这个工作,但回到主视图遇到同样的故障。 导航栏保持透明1.5秒左右,然后回到原来的红色。 我不能用导航栏的样式解决它,但设法修复它不同的方式。 这不是一个首选的解决scheme,但是现在花了我好几个小时,我没事。

好的,我做的是创build一个ImageView,并在自动布局的导航栏下alignment。 导航栏的高度是44像素,所以ImageView的y坐标是-44。 我给了ImageView红色的导航栏,所以当它是透明的1.5秒,用户实际上看到了ImageView,而不是导航栏的颜色。

我希望这也能帮助你。