#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 да, вы должны сделать это вручную