Benim app, değiştirir özel bir gezinti kontrol kurulum navigationBarler titleTextAttributes, tintColorve diğerleri farklı senaryolar bağlı.
Uygulamayı iOS 13'te çalıştırırken backBarButtonItemokun varsayılan mavi renk tonu vardı. Görünüm hata ayıklayıcı, sadece UIBarButtonItems UIImageViewbu mavi renk tonu olduğunu gösterdi .
Yaptığım şey navigationBar.tintColorrengi değiştirmek için iki kez ayarlamaktı ...
public class MyNavigationController: UINavigationController, UINavigationControllerDelegate {
public var preferredNavigationBarTintColor: UIColor?
override public func viewDidLoad() {
super.viewDidLoad()
delegate = self
}
public func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
// if you want to change color, you have to set it twice
viewController.navigationController?.navigationBar.tintColor = .none
viewController.navigationController?.navigationBar.tintColor = preferredNavigationBarTintColor ?? .white
// following line removes the text from back button
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
}
Çözüm ararken en garip kısım tutarsız sonuçtu, bu da beni yaşam döngüsü ve / veya görünüm animasyonları veya Xcode önbelleği ile ilgili olduğunu düşündürüyor :)