我已经使用UIHostingController在ViewController中使用SwiftUI视图。在该SwiftUI视图中,我使用了两个按钮,当它们被按下时,它们应该显示一个Modal SwiftUI视图。 不幸的是,如果我按下按钮,状态变量会改变,但是不会显示“模态视图”。
对于按钮,我使用了以下代码:
Button(action: {
self.showModal = true
let impactLight = UIImpactFeedbackGenerator(style: .light)
impactLight.impactOccurred()
print("show: ", self.showModal)}) {
Text("ZEIGE STRATEGIE")
.foregroundColor(.black)
.frame(width: 254, height: 37)
.shadow(color: Color.white, radius: 8, x: -9, y: -9)
.shadow(color: Color("neumorphismShadowBlack"), radius: 8, x: 9, y: 9)
.padding(5)
.background(Color("mainBackgroundColor"))
.cornerRadius(20)
}.sheet(isPresented: self.$showModal) {
StrategyView()}
.shadow(color: Color.white, radius: 8, x: -9, y: -9)
.shadow(color: Color("neumorphismShadowBlack"), radius: 8, x: 9, y: 9)
对于UIView,我使用了以下代码:
let swiftUIView = RecognitionView(detectedDices: detectedDices)
let uiView = UIHostingController(rootView: swiftUIView)
uiView.view.frame = feedbackView.frame
uiView.view.center = CGPoint(x: feedbackView.frame.size.width / 2,
y:feedbackView.frame.size.height / 2)
feedbackView.addSubview(uiView.view)
如果在开始时将showModal设置为true,则将显示“模态视图”,但当应该显示“模态视图”时,当按下按钮时,它将不起作用。
感谢您的帮助!