Swiftui 如何从弹出窗口本身中关闭弹出窗口?

Swiftui 如何从弹出窗口本身中关闭弹出窗口?,swiftui,Swiftui,我有一个按钮,按下时会显示一个弹出窗口,弹出窗口上有一个按钮,用来关闭弹出窗口本身 我不确定如何在这里使用@Binding变量(如果我正确地假设不同结构之间应该使用@Binding变量进行通信) @绑定确实是解决这一问题的一种可能性 它的工作原理如下: struct ContentView : View { @State var showPopUp = false var body: some View { VStack { Butt

我有一个按钮,按下时会显示一个弹出窗口,弹出窗口上有一个按钮,用来关闭弹出窗口本身

我不确定如何在这里使用@Binding变量(如果我正确地假设不同结构之间应该使用@Binding变量进行通信)


@绑定确实是解决这一问题的一种可能性

它的工作原理如下:

struct ContentView : View {
    @State var showPopUp = false

    var body: some View {

        VStack {

            Button(action: {
                self.showPopUp = true
            }) {
                Text("Show PopUp Button")
            }

            Spacer()

            if self.showPopUp == true {
                PopUp(showPopUp: $showPopUp)
            }
        }
    }
}


struct PopUp: View {
    @Binding var showPopUp: Bool

    var body: some View {

        ZStack {

            Color.orange

            Button(action: {
                self.showPopUp.toggle()
            }) {
                Text("Hide PopUp Button")
            }
        }.frame(width: 300, height: 500, alignment: .center)
    }
}

@绑定确实是解决这一问题的一种可能性

它的工作原理如下:

struct ContentView : View {
    @State var showPopUp = false

    var body: some View {

        VStack {

            Button(action: {
                self.showPopUp = true
            }) {
                Text("Show PopUp Button")
            }

            Spacer()

            if self.showPopUp == true {
                PopUp(showPopUp: $showPopUp)
            }
        }
    }
}


struct PopUp: View {
    @Binding var showPopUp: Bool

    var body: some View {

        ZStack {

            Color.orange

            Button(action: {
                self.showPopUp.toggle()
            }) {
                Text("Hide PopUp Button")
            }
        }.frame(width: 300, height: 500, alignment: .center)
    }
}

嗨,谢谢你的回答!当你说“@绑定确实是解决这个问题的一种可能”时,你的意思是有一种更有效的方法吗?只是好奇谢谢你!是的,我只是在等待8分钟的暂停时间结束,结束!嗨,谢谢你的回答!当你说“@绑定确实是解决这个问题的一种可能”时,你的意思是有一种更有效的方法吗?只是好奇谢谢你!是的,我只是在等待8分钟的暂停时间结束,结束!