我在内容视图中设置了一个变量
@State var shouldShowModal = false
,我想在按下按钮后更改它shouldShowModal = false
。我不断收到 Cannot find 'shouldShowModal' in range.
这是一个工作示例,通过
@Binding
传递值。阅读更多关于@Binding
这里,或官方文档。
这意味着您现在可以使用绑定执行
shouldShowModal = false
,这也将更新包含 @State
的原始视图的主体。
struct ContentView: View {
@State private var shouldShowModal = false
var body: some View {
VStack {
Text("Hello world!")
.sheet(isPresented: $shouldShowModal) {
Text("Modal")
}
OtherView(shouldShowModal: $shouldShowModal)
}
}
}
struct OtherView: View {
@Binding var shouldShowModal: Bool
var body: some View {
VStack {
Text("Should show modal: \(shouldShowModal ? "yes" : "no")")
Toggle("Toggle modal", isOn: $shouldShowModal)
}
}
}
我很感谢您的回复,这很有帮助。如果我尝试使用该方案打开新视图,您能帮我解决应该声明变量的内容吗?这是我认为我需要知道的: 如果我的变量类型是另一个 SwiftUI 文件,它将是一个像“NewView()”这样的新视图,我应该在括号中放入什么?: @Binding var查看:[]
我希望这是有道理的。如果我可以详细说明,请告诉我。