Tintcolor стрелка влево назад navigationBar изменяется после закрытия UIAlertController (IOS)

EDIT: Пользовательский код Эта проблема была вызвана установкой цвета tintColor для всех объектов во время первоначальной загрузки приложения.


У меня очень странная ситуация в моем коде. Цвет tintColor левой стрелки «Назад» меняется на другой цвет после:

  1. Представление UIAlertController
  2. Закрытие UIAlertController
  3. Переключение вкладок. (Изменение цвета видно при переключении вкладок).

После изменения цвета я не могу вернуть исходный цвет.

Что я пробовал?

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.


person Bas    schedule 13.09.2016    source источник
comment
какой цвет значка сзади? Желтый ?   -  person Chathuranga Silva    schedule 13.09.2016
comment
Обычный цвет — UIColor.whiteColor(). (Я пробую ставить разные цвета, чтобы найти нужное место в коде). Цвет меняется на blueColor. (это цвет Tintcolor приложения по умолчанию)   -  person Bas    schedule 13.09.2016
comment
Показать код вкладок переключения   -  person Chathuranga Silva    schedule 13.09.2016
comment
Я отредактировал пост!   -  person Bas    schedule 13.09.2016


Ответы (2)


Попробуйте установить TintAdjustmentMode,

 [self.view setTintAdjustmentMode:UIViewTintAdjustmentModeNormal];

or

 [self.view setTintAdjustmentMode:UIViewTintAdjustmentModeAutomatic];
person Ketan Parmar    schedule 13.09.2016
comment
Привет, Лев, я пробовал это (также в AlmanappDelegate.swift). Ничего не меняется. Когда я устанавливаю значение .Normal, с самого начала отображается неправильный цвет. - person Bas; 13.09.2016

Я нашел проблему. В делегате приложения функция устанавливала все tintColors всего приложения. По-видимому, закрытие ActionController снова изменит tintColors

 for window in UIApplication.sharedApplication().windows {
        window.tintColor = UIColor.wrongColor()
    }
person Bas    schedule 13.09.2016