【发布时间】:2018-10-27 13:35:13
【问题描述】:
我正在将一个视图控制器推到我的导航控制器上,它将导航栏设置为具有透明背景和白色文本。当视图被弹出时,它应该将导航栏恢复到它以前的样子——白色背景和黑色文本。然而,这并没有发生。我正在推送的视图代码:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.barStyle = .black
navigationController?.navigationBar.tintColor = .white
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.isTranslucent = true
navigationController?.navigationBar.backgroundColor = .clear
navigationController?.view.backgroundColor = .clear
setNeedsStatusBarAppearanceUpdate()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.navigationBar.shadowImage = nil
navigationController?.navigationBar.barStyle = .default
navigationController?.navigationBar.tintColor = .black
navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
navigationController?.navigationBar.isTranslucent = false
navigationController?.navigationBar.backgroundColor = .white
navigationController?.view.backgroundColor = .white
setNeedsStatusBarAppearanceUpdate()
}
当我弹回根视图控制器时,标题的颜色是白色。这应该是黑色的。为什么会这样?
【问题讨论】:
-
尝试更改
navigationController?.navigationBar.titleTextAttributes -
在根视图控制器的 viewWillAppear 中使用 viewWillDisappear 的那些代码。
-
@AntonBelousov 已经尝试过“重复”的答案,它不起作用,仍然产生相同的结果。我现在实际上已经放弃了,只是在
navigationBar的titleView中添加了一个UILabel