Изменение цвета заголовка в панели навигации не работает.
Существует UINavigationController.
Его rootViewController
- это VC1. Цвет заголовка на панели навигации установлен на красный.
VC1 толкает VC2. Цвет заголовка на панели навигации установлен на зеленый.
Когда VC2 активирован, цвет заголовка на панели навигации устанавливается на красный. Однако цвет заголовка на панели навигации не меняется на красный и остается зеленым.
Контроллер навигации является своим собственным делегатом. Используя метод navigationController(_:willShow:animated)
, цвет плитки устанавливается на панели навигации.
extension NavigationController: UINavigationControllerDelegate {
func navigationController(
_ navigationController: UINavigationController,
willShow viewController: UIViewController,
animated: Bool
) {
let attributes: [NSAttributedString.Key: Any] = [
.foregroundColor: viewController is VC1 ? UIColor.red : UIColor.green
]
navigationBar.titleTextAttributes = navigationBar.titleTextAttributes?.merging(attributes) { $1 }
}
}
Ожидается - после того, как VC2 извлечен, цвет заголовка на панели навигации должен измениться на красный.
Факт. После того, как VC2 извлечен, цвет заголовка на панели навигации остается зеленым.
Кто-нибудь может указать, как решить эту проблему, чтобы цвет заголовка впанель навигации становится красной после того, как VC2 выскочил?