Как обнаружить изменения темного/светлого режима в моем AppDelegate, чтобы сбросить глобальный tintColor?

В моем AppDelegate я установил глобальный цвет оттенка. Как я могу получать уведомления, когда пользователь включает/отключает темный режим, чтобы сбросить глобальный оттенок?

В моем AppDelegate у меня есть:

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate
{
    var window: UIWindow?    // To conform with UIApplicationDelegate

    func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [ UIApplication.LaunchOptionsKey : Any ]? ) -> Bool
    {
        window?.tintColor = UIColor.someColor
        ...
    }
}

Мне нужно обновить глобальный цвет оттенка, когда темный режим включен/отключен. Как я могу обнаружить это изменение?


person Gary Hooper    schedule 30.10.2019    source источник


Ответы (1)


  • Определите цвет для светлого и темного внешнего вида в каталоге активов
  • Установите цвет оттенка в AppDelegate с помощью UIColor(named: API. Цвет изменится автоматически.
person vadian    schedule 30.10.2019
comment
В качестве альтернативы я также смог добиться этого, добавив traitCollectionDidChange к каждому из моих корневых контроллеров представления. - person Gary Hooper; 06.11.2019