Я хочу использовать SwiftUI View в качестве контента для дочернего UIView (который в моем приложении будет внутри UIViewController), передав SwiftUI. Однако SwiftUI View не реагирует на изменения состояния после встраивания в UIView.
Я создал упрощенную версию своего кода ниже, в которой есть проблема. При нажатии на текстовое представление, встроенное в EmbedSwiftUIView, внешнее текстовое представление в верхней части VStack обновляется должным образом, но текстовое представление, встроенное в EmbedSwiftUIView, не обновляет свое состояние.
struct ProblemView: View {
@State var count = 0
var body: some View {
VStack {
Text("Count is: \(self.count)")
EmbedSwiftUIView {
Text("Tap to increase count: \(self.count)")
.onTapGesture {
self.count = self.count + 1
}
}
}
}
}
struct EmbedSwiftUIView<Content:View> : UIViewRepresentable {
var content: () -> Content
func makeUIView(context: UIViewRepresentableContext<EmbedSwiftUIView<Content>>) -> UIView {
let host = UIHostingController(rootView: content())
return host.view
}
func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<EmbedSwiftUIView<Content>>) {
}
}