[英]How to change a @State variable from a different struct
我是 swift UI 和 swift 的新手,我想知道如何从不同的结构更改变量。 在这种情况下,我需要在不同视图中从本节更改内容视图中登录的布尔值。 基本解释将不胜感激。 谢谢!
Button(action: {
if (checkKey(testKey: self.key)) {
//HERE
}
}) {
Text("Submit")
.padding()
.background(Color.init(.sRGB, red: 0.01, green: 0.01, blue: 0.01, opacity: 0.05))
.cornerRadius(10)
}
这是内容视图。 我需要更改@State bool
struct ContentView: View {
@State public var loggedin: Bool = false
var body: some View {
NavigationView {
if (loggedin) {
MainView()
} else {
// Not Logged In
LoginScreen()
}
}
}
}
这是一个完整的代码,您可以使用@Binding var loggedin: Bool
和 chnage value 将您的@State public var loggedin: Bool
变量传递给另一个结构
struct ContentView: View {
@State public var loggedin: Bool = false
var body: some View {
NavigationView {
if (loggedin) {
MainView(loggedin: $loggedin)
} else {
// Not Logged In
LoginScreen(loggedin: $loggedin)
}
}
}
}
struct MainView: View {
@Binding var loggedin: Bool
var body: some View {
VStack {
Text("")
Button(action: {
self.loggedin = false
}, label: {
Text("Chnage loggedin value")
})
}
}
}
@Binding var loggedin: Bool
在您的登录屏幕视图中。 如果您只在此处使用登录名就好了,如果您在整个应用程序中使用它,您可能需要查看@EnvironmentObject。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.