Я обновляю приложение, которое было скомпилировано в Xcode 10 и работает нормально до iOS 13. Я хотел внести некоторые изменения, перекомпилированные в Xcode 11, и теперь у меня проблема с barTintColor.
Если для параметра «Большие заголовки» установлено значение «Всегда», мой пользовательский barTintColor не применяется - я просто получаю серый по умолчанию. Если для параметра «Большие заголовки» установлено значение «Никогда», мой пользовательский barTintColor будет применен, как и ожидалось. Если для параметра «Большие заголовки» установлено значение «Automati c», то по умолчанию NavBar отображается серым цветом, когда отображаются большие заголовки, и мой пользовательский цвет, когда отображаются маленькие заголовки. Например, когда TableView под моей панелью навигации перемещается вверх, большой заголовок по умолчанию переключается на маленький заголовок, а мой NavBar меняет цвет. Нормальное поведение всегда будет моим собственным цветом.
Соответствующий код из моего класса ViewController, последняя строка которого задает barTintColor:
override func viewDidLoad() {
super.viewDidLoad()
setDelegates()
setTableViewHeightForCollapsingHeaders()
setNavigtionBarItems()
doSplitViewManagement()
}
override func viewWillAppear(_ animated: Bool) {
clearsSelectionOnViewWillAppear = splitViewController!.isCollapsed
super.viewWillAppear(animated)
updateUI()
}
fileprivate func setNavigtionBarItems() {
//set up UI buttons
navigationItem.leftBarButtonItem = editButtonItem
let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(insertNewObject(_:)))
navigationItem.rightBarButtonItem = addButton
navigationController?.navigationBar.barTintColor = UIColor(hex: 0x5da0a2)
}
Есть идеи, почему изменилось поведение и как его исправить?