Изменение цветовой схемы SwiftUI View не работает, когда оно находится внутри UIHostingController ⇐ IOS
Изменение цветовой схемы SwiftUI View не работает, когда оно находится внутри UIHostingController
Все, что у меня есть, — это простое представление SwiftUI, подобное этому:
struct SettingsSUView: Просмотр { @State Private var isPresented = false @State Private var isDarkMode = true var body: some View { Кнопка("Показать лист") { isPresented = правда } .sheet(isPresented: $isPresented) { Список { Toggle("Темный режим", isOn: $isDarkMode) } .preferredColorScheme(isDarkMode? .dark: .light) } } } #Предварительный просмотр { НастройкиSUView() } Цветовая схема меняется как обычно, когда она запускается в режиме предварительного просмотра и как отдельный SwiftUIView, но когда она была помещена в UIHostingController, цветовая схема перестала меняться.
let contentHostingController = UIHostingController(rootView: SettingsSUIView()) addChild (contentHostingController) view.addSubview(contentHostingController.view) contentHostingController.view.snp.makeConstraints { make in make.edges.equalToSuperview() } contentHostingController.didMove(toParent: self) Я пробовал много вещей, таких как использование contentHostingController.overrideUserInterfaceStyle = .dark, но большинство из них можно изменить только одним способом и не обновлять цветовую схему представления SwiftUI, чтобы она соответствовала изменениям Переключить.
Все, что у меня есть, — это простое представление SwiftUI, подобное этому:
struct SettingsSUView: Просмотр { @State Private var isPresented = false @State Private var isDarkMode = true var body: some View { Кнопка("Показать лист") { isPresented = правда } .sheet(isPresented: $isPresented) { Список { Toggle("Темный режим", isOn: $isDarkMode) } .preferredColorScheme(isDarkMode? .dark: .light) } } } #Предварительный просмотр { НастройкиSUView() } Цветовая схема меняется как обычно, когда она запускается в режиме предварительного просмотра и как отдельный SwiftUIView, но когда она была помещена в UIHostingController, цветовая схема перестала меняться.
let contentHostingController = UIHostingController(rootView: SettingsSUIView()) addChild (contentHostingController) view.addSubview(contentHostingController.view) contentHostingController.view.snp.makeConstraints { make in make.edges.equalToSuperview() } contentHostingController.didMove(toParent: self) Я пробовал много вещей, таких как использование contentHostingController.overrideUserInterfaceStyle = .dark, но большинство из них можно изменить только одним способом и не обновлять цветовую схему представления SwiftUI, чтобы она соответствовала изменениям Переключить.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
UIHostingController блокирует события касания для базового UIHostingController
Anonymous » » в форуме IOS - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-
-
-
UIHostingController блокирует события касания для базового UIHostingController
Anonymous » » в форуме IOS - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
UIHostingController блокирует события касания для базового UIHostingController
Anonymous » » в форуме IOS - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-