Как включить темную тему для iOS 12 и ниже

#swift #uikit #darkmode

Вопрос:

Я уже добавил поддержку iOS13, где есть два переключателя: первый-для автоматической системной темы, а второй-для включения и выключения темной темы, и переключаю его с помощью данного метода:

 func changeThemeTo(theme: String){
        switch theme {
        case "dark":
            UIApplication.shared.windows.forEach { window in
                if #available(iOS 13.0, *) {
                    window.overrideUserInterfaceStyle = .dark
                } else {
                    // Fallback on earlier versions
                }
            }
        case "light":
            UIApplication.shared.windows.forEach { window in
                if #available(iOS 13.0, *) {
                    window.overrideUserInterfaceStyle = .light
                } else {
                    // Fallback on earlier versions
                }
            }
        case "auto":
            UIApplication.shared.windows.forEach { window in
                if #available(iOS 13.0, *) {
                    window.overrideUserInterfaceStyle = .unspecified
                } else {
                    // Fallback on earlier versions
                }
            }
        default: break
        }
}
 

И все работает нормально для iOS 13, но теперь мне нужно, чтобы это работало для iOS ниже 13. Есть ли что-то похожее, что я могу сделать window.overrideUserInterfaceStyle = .dark , или я должен полностью изменить логику переключения, как это было сделано на https://www.onswiftwings.com/posts/dark-mode/

Комментарии:

1. Темный режим не поддерживается до iOS 13. Если темный режим не является обязательным, то, вероятно, проще всего перейти в светлый режим по умолчанию и отключить кнопку для смены режима.

2. Но темный режим очень важен. Является ли моим единственным решением сделать так, как сказано в ссылке OnSwiftWings?

3. @noimagination да, вы должны сделать это вручную