代码之家  ›  专栏  ›  技术社区  ›  János

当使用结构定义时,如何在Vision Pro中调用disseWindow

  •  0
  • János  · 技术社区  · 2 年前

    我有一个窗口的定义,它可以用参数打开:

    struct MyData: Codable, Hashable {
        var intValue: Int
        var stringValue: String
    }
    
    struct i2ElevatorApp: App {
        private var portraitSize : CGSize = CGSize(width: 1000, height: 600)
        private var landscapeSize : CGSize = CGSize(width: 600, height: 400)
        private var landscapeSize2x : CGSize = CGSize(width: 800, height: 600)
        let sharedState = SharedState()
        var body: some Scene {
            WindowGroup {
                ContentView().environmentObject(sharedState)
            }.defaultSize(portraitSize)
            WindowGroup(id: "SubTransformationView", for: MyData.self) { data in
                if let data = data.wrappedValue {
                    CardView(cardIndex: data.intValue, cardType: data.stringValue)
                        .environmentObject(sharedState)
                } else {
                    EmptyView()
                }
            }.defaultSize(portraitSize)
    

    那么如何打电话 dismissWindow 为了它?

    1 回复  |  直到 2 年前
        1
  •  0
  •   Mojtaba Hosseini    2 年前

    使用相应的环境变量:

    @Environment(\.dismissWindow) private var dismissWindow
    

    你可以这样称呼它:

    dismissWindow(id: "SubTransformationView")
    
    推荐文章