Reputation: 4330
I'm pushing from a VC1 inside a UINavigationController to a VC2. VC2 has a transparent navigationBar.
In viewDidLoad inside VC2:
self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.barTintColor = .clear
self.navigationController?.navigationBar.backgroundColor = .clear
When i push the back button i want to restore the navigationBar as it was (green color), so inside viewWillDissapear i have the following:
self.navigationController?.navigationBar.isTranslucent = false
self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
self.navigationController?.navigationBar.barTintColor = .green
self.navigationController?.navigationBar.backgroundColor = .green
But i get this weird black status bar while transitioning:
Upvotes: 2
Views: 1171
Reputation: 6555
Can you please try below,
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)
}
and
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UINavigationBar.appearance().backgroundColor = .green
UINavigationBar.appearance().barTintColor = .green
self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
}
Upvotes: 1