Как изменить цвет фона, меток и текста для всех контроллеров представления? - PullRequest
1 голос
/ 08 марта 2019

У меня есть два контроллера вида, на первой у меня есть кнопка для дневного / ночного режима, как я могу установить одинаковый цвет фона, цвет текста, цвет фона меток для обоих видов.Я пытался использовать константы:

let colors = [UIColor.black, UIColor.white]
var index = 0


UIView.appearance().backgroundColor = colors[index]
UILable.appearance().backgroundColor = colors[index]
UITextField.appearance().backgroundColor = colors[index]
...

Но это не работает хорошо.Он меняет цвета, иногда застревает и не обновляет цвет текста или цвета фона для надписей после возврата назад при первом просмотре.

Моя кнопка dayNight:

@IBAction func dayNight(_ sender: Any) {
    contentView.backgroundColor = colors[index]
    firstView.backgroundColor = colors[index]
    scrollView.backgroundColor = colors[index]
    calculateOutlet.backgroundColor = UIColor.black
    calculateOutlet.titleLabel?.textColor = UIColor.white
    //UIView.appearance().backgroundColor = colors[index]
    //UIScrollView.appearance().backgroundColor = colors[index]
    navigationController?.navigationBar.barTintColor = colors[index]
    navigationController?.navigationBar.titleTextAttributes = titleColors[index]
    self.dayNightOulet.image = imagesBar[index]
    self.dayNightOulet.tintColor = colorsOposite[index]
    UIApplication.shared.statusBarStyle = navStatusColor[index]
    //dayNight.set
    if index == colors.count - 1 && index == colorsOposite.count - 1 {
        index = 0
    } 
    else {
        index += 1
    }
}

Для UIApplication.shared.statusBarStyle = navStatusColor [index] это работает хорошо.Как я могу установить цвета для следующего просмотра?

...