Режим темного освещения iOS не обновляет UIViewController

У меня проблема с проектом iOS с Xcode 12.3. Приложение предназначено как для светлого, так и для темного режима, и оно работает нормально, если мы меняем светлый / темный режим, когда приложение закрыто, но если отправить приложение в фоновом режиме и изменить режим и возобновить приложение, тогда текущий UIViewController не обновляет темный / светлый режим. Вы можете проверить это ниже.

http://g.recordit.co/0LtJsLLkfe.gif


person Varun Naharia    schedule 22.01.2021    source источник
comment
Как вы определяете изменение режима светлый-темный?   -  person El Tomato    schedule 22.01.2021
comment
Можете ли вы попытаться переопределить эту функцию, чтобы проверить, что она вызывается после возобновления работы приложения. override func updateLayer () {self.layer? .backgroundColor = NSColor.textBackgroundColor.cgColor // Другие обновления. }   -  person Shauket Sheikh    schedule 22.01.2021
comment
Я не обнаруживаю изменения режима, почти все элементы меняют цвет автоматически, но некоторые элементы не меняются автоматически для тех, которые я устанавливаю вручную в viewDidLoad с кодом if(traitCollection.userInterfaceStyle == .dark){ и меняю цвет элемента.   -  person Varun Naharia    schedule 22.01.2021


Ответы (1)


При изменении стиля пользовательского интерфейса системный вызов func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) методы этого делегата

пожалуйста, обновите свои программно назначенные цвета в этих методах

   override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
        super.traitCollectionDidChange(previousTraitCollection)
        if(traitCollection.userInterfaceStyle == .dark){
            // set your Dark UI
        } else {
            // set your Light UI
        }
    }
person HD Mavani    schedule 22.01.2021