Benim app, değiştirir özel bir gezinti kontrol kurulum navigationBar
ler titleTextAttributes
, tintColor
ve diğerleri farklı senaryolar bağlı.
Uygulamayı iOS 13'te çalıştırırken backBarButtonItem
okun varsayılan mavi renk tonu vardı. Görünüm hata ayıklayıcı, sadece UIBarButtonItem
s UIImageView
bu mavi renk tonu olduğunu gösterdi .
Yaptığım şey navigationBar.tintColor
rengi 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 :)