iOS 状态栏背景在转换后变为黑色
iOS statusBar background goes to black after transition
我正在从 UINavigationController 中的 VC1 推送到 VC2。 VC2有一个透明的navigationBar。
在 VC2 中的 viewDidLoad 中:
self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.barTintColor = .clear
self.navigationController?.navigationBar.backgroundColor = .clear
当我按下后退按钮时,我想将导航栏恢复原样(绿色),所以在 viewWillDissapear 中我有以下内容:
self.navigationController?.navigationBar.isTranslucent = false
self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
self.navigationController?.navigationBar.barTintColor = .green
self.navigationController?.navigationBar.backgroundColor = .green
但是我在转换时看到这个奇怪的黑色状态栏:
这是预期的过渡:
你能试试下面吗,
override func viewDidLoad() {
super.viewDidLoad()
UINavigationBar.appearance().backgroundColor = .clear
UINavigationBar.appearance().barTintColor = .clear
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
}
和
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UINavigationBar.appearance().backgroundColor = .green
UINavigationBar.appearance().barTintColor = .green
self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
}
我正在从 UINavigationController 中的 VC1 推送到 VC2。 VC2有一个透明的navigationBar。
在 VC2 中的 viewDidLoad 中:
self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.barTintColor = .clear
self.navigationController?.navigationBar.backgroundColor = .clear
当我按下后退按钮时,我想将导航栏恢复原样(绿色),所以在 viewWillDissapear 中我有以下内容:
self.navigationController?.navigationBar.isTranslucent = false
self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
self.navigationController?.navigationBar.barTintColor = .green
self.navigationController?.navigationBar.backgroundColor = .green
但是我在转换时看到这个奇怪的黑色状态栏:
这是预期的过渡:
你能试试下面吗,
override func viewDidLoad() {
super.viewDidLoad()
UINavigationBar.appearance().backgroundColor = .clear
UINavigationBar.appearance().barTintColor = .clear
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
}
和
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UINavigationBar.appearance().backgroundColor = .green
UINavigationBar.appearance().barTintColor = .green
self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
}