我是 swift UI 和 swift 的新手,我想知道如何从不同的结构更改变量。在这种情况下,我需要在不同的 View 中更改此部分的内容 View 中的登录 bool 值。基本解释将不胜感激。谢谢!
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)
}
这是内容 View 。我需要更改@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 值将您的 @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")
})
}
}
关于ios - 如何更改来自不同结构的@State 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59779637/