I want to set white barTintColor in some viewcontroller
I have set UINavigationBar.appearance().barTintColor
for all default color but when I use appearance whenContainedInInstancesOf
It's not change my viewcontroller
UINavigationBar.appearance(whenContainedInInstancesOf: [MyViewController.self]).barTintColor = .white
Any idea?. I tried this in my viewcontroller
self.navigationcontroller.navigationbar.barTintColor = .white
but I have to set color back to default when screen will disappear. I don't want to do like that. How can I do?
@zombie has the correct answer. I just came across this issue a moment ago with UISearchBar. Here's the Swift 3 version of the answer. Using .red
as the sample UIColor
for this example.
let textField = UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self])
textField.tintColor = .red
let searchBar = UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self])
searchBar.setTitleTextAttributes([NSForegroundColorAttributeName: .red], for: .normal)
searchBar.setTitleTextAttributes([NSForegroundColorAttributeName: .red], for: .disabled)