Как сразу изменить стиль темы (стиль пользовательского интерфейса) в Swift в iOS 13IOS

Программируем под IOS
Ответить
Anonymous
 Как сразу изменить стиль темы (стиль пользовательского интерфейса) в Swift в iOS 13

Сообщение Anonymous »

Я использую Swift 5.1 и Xcode 11.1, и в настоящее время я закончил реализацию дизайна Темного режима.

В приложении есть настройка, в которой пользователь может установить тему отображения (Светлая, Темная, Системная настройка по умолчанию), и в настоящее время оно работает нормально, если приложение перезапускается после того, как пользователь выбирает тему (я сохраняю эти логические данные в UserDefaults и устанавливаю UIAppearance при запуске приложения в файле AppDelegate)

Вот мой код

Код: Выделить всё

if #available(iOS 13.0, *) {
switch AppState.appThemeStyle {
case "dark":
window?.overrideUserInterfaceStyle = .dark
break
case "light":
window?.overrideUserInterfaceStyle = .light
break
default:
window?.overrideUserInterfaceStyle = .unspecified
}
}
Но я вижу, что многие приложения меняют темы отображения сразу после того, как пользователь устанавливает стиль темы.

Я думаю, что не стоит перезапускать приложение только для изменения темы, а тема должна меняться сразу после того, как пользователь устанавливает стиль темы.

Я пытался сделать это, установив базовый контроллер представления и установив стиль пользовательского интерфейса в ViewWillAppear, но внешний вид панели навигации и панели вкладок не меняется.
/>
Может кто-нибудь сказать мне, как с этим справиться?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/585 ... -in-ios-13
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»