首页 > 解决方案 > SwiftUI:如何在按钮单击时关闭(不是模态)子视图?

问题描述

我有一个带有 VStack 的 messageView 显示在主视图(不是模态 - 作为主视图的子视图)上,需要在单击按钮时关闭。我找到了如何使用 SwiftUI 以模式呈现和关闭视图,但没有找到针对这种情况的任何特定内容..

标签: swiftui

解决方案


如果您可以提供示例代码来演示您正在尝试的内容,那将会更容易。

如果我错了,请纠正我,但我对这个问题的理解是,一旦用户点击按钮,您就想隐藏视图。

为此,您可以使用 @State 属性包装器

struct MainView: View {
   @State private var isMessageViewHidden: Bool = false

   var body: some View {
        Button(action: {
            self.isMessageViewHidden = true
        }) {
            Text("itle")
        }
        if !isMessageViewHidden {
            MessageView()
        }
    } 
}

推荐阅读