2016-09-13 7 views
3

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


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

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

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

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

1) Установка цвета в нескольких местах. (ViewWillAppear/ViewDidAppear).

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) Пытались это решение: Navigation bar tint color changes after auto dimissal of UIAlertView

Ничто не работает. Может ли это быть ошибкой IOS? Странно то, что изменения не произойдут после переключения вкладок, но также не произойдет, если не использовать UIAlertViewController.

+0

Что такое задний цвет значка? Желтый? –

+0

Обычный цвет - UIColor.whiteColor(). (Я пытаюсь установить разные цвета, чтобы найти нужное место в коде). Цвет изменяется на синий цвет. (это значение Tintcolor приложения) – Bas

+0

Показать коды вкладок коммутатора –

ответ

0

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

[self.view setTintAdjustmentMode:UIViewTintAdjustmentModeNormal]; 

или

[self.view setTintAdjustmentMode:UIViewTintAdjustmentModeAutomatic]; 
+0

Hi Lion, я попробовал это (также в AlmanappDelegate.swift.) Ничего не меняется. Когда я устанавливаю это в .Normal, с самого начала отображается неправильный цвет. – Bas

0

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

for window in UIApplication.sharedApplication().windows { 
     window.tintColor = UIColor.wrongColor() 
    }