如何更改 Swiftui 中不同文件中的变量值

问题描述 投票:0回答:2

我在内容视图中设置了一个变量

@State var shouldShowModal = false
,我想在按下按钮后更改它
shouldShowModal = false
。我不断收到 Cannot find 'shouldShowModal' in range.

variables swiftui
2个回答
0
投票

这是一个工作示例,通过

@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)
        }
    }
}

0
投票

我很感谢您的回复,这很有帮助。如果我尝试使用该方案打开新视图,您能帮我解决应该声明变量的内容吗?这是我认为我需要知道的: 如果我的变量类型是另一个 SwiftUI 文件,它将是一个像“NewView()”这样的新视图,我应该在括号中放入什么?: @Binding var查看:[]

我希望这是有道理的。如果我可以详细说明,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.