使用UIHostingController和SwiftUI的模式视图

时间:2020-02-29 18:42:25

标签: ios swift swiftui viewcontroller

我已经使用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,则将显示“模态视图”,但当应该显示“模态视图”时,当按下按钮时,它将不起作用。

感谢您的帮助!

0 个答案:

没有答案