首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用SwiftUI,我们在列表中安装了一个按钮。为什么当我点击按钮以显示模式,然后再次关闭它时,模式会消失?

点击按钮显示模态视图后,再次关闭它时,模态视图会消失的原因是因为按钮点击事件触发了视图状态的改变,导致模态视图的显示与隐藏发生了变化。

在SwiftUI中,视图状态是由@State属性包装器来管理的。当按钮被点击时,按钮的点击事件会改变@State属性的值,从而触发视图的重新渲染。在模态视图显示时,@State属性的值被设置为true,从而显示模态视图;当再次点击按钮关闭模态视图时,@State属性的值被设置为false,导致模态视图消失。

要解决这个问题,可以使用@Binding属性包装器来将模态视图的显示状态与按钮的点击事件进行绑定。首先,在父视图中创建一个@State属性来管理模态视图的显示状态,并将其作为@Binding参数传递给子视图。然后,将按钮的点击事件改为修改@Binding属性的值。这样,在点击按钮时,按钮事件改变了@Binding属性的值,从而触发视图的重新渲染,但模态视图的显示状态仍然保持不变。

以下是示例代码:

代码语言:txt
复制
struct ContentView: View {
    @State private var isModalVisible = false
    
    var body: some View {
        VStack {
            Button("Show Modal") {
                self.isModalVisible = true
            }
        }
        .sheet(isPresented: $isModalVisible) {
            ModalView(isModalVisible: self.$isModalVisible)
        }
    }
}

struct ModalView: View {
    @Binding var isModalVisible: Bool
    
    var body: some View {
        VStack {
            Text("Modal View")
            Button("Close") {
                self.isModalVisible = false
            }
        }
    }
}

在这个例子中,当点击按钮时,isModalVisible属性的值会改变,从而触发模态视图的显示;当点击模态视图中的关闭按钮时,isModalVisible属性的值被修改为false,从而关闭模态视图。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券