EDIT: Пользовательский код Эта проблема была вызвана установкой цвета tintColor для всех объектов во время первоначальной загрузки приложения.
У меня очень странная ситуация в моем коде. Цвет tintColor левой стрелки «Назад» меняется на другой цвет после:
- Представление UIAlertController
- Закрытие UIAlertController
- Переключение вкладок. (Изменение цвета видно при переключении вкладок).
После изменения цвета я не могу вернуть исходный цвет.
Что я пробовал?
1) Восстановление цвета в нескольких местах. (Виеввиллаппеар / виевдидаппеар).
self.navigationItem.backBarButtonItem?.tintColor = UIColor.redColor()
self.navigationController?.navigationBar.tintColor = UIColor.redColor()
2) Настройка внешнего вида.
UINavigationBar.appearance().tintColor = UIColor.yellowColor()
3) Попытка переопределить метод didSetTintColor
4) Измените tintColor после выпуска UIAlertView (пример ниже)
UIAlertAction(title: "Example button", style: .Cancel, handler: { action in
alertController.removeFromParentViewController()
self.navigationItem.backBarButtonItem?.tintColor = UIColor.greenColor()
self.navigationController?.navigationBar.tintColor = UIColor.greenColor()
})
5) Пробовал это решение: Цвет оттенка панели навигации меняется после автоматическое закрытие UIAlertView
Кажется, ничего не работает. Может ли это быть ошибкой IOS? Странно то, что изменение не произойдет после переключения вкладки, но также не произойдет, если не использовать UIAlertViewController.