ios - 如何更改来自不同结构的@State 变量

标签 ios swift xcode swiftui

我是 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/

相关文章:

ios - 将负整数作为 0xnn 十六进制写入外设

c - 如何使用struct param正确调用函数?

ios - 在 Swift 中的一个地方导入整个项目的框架?

xcode - 开发Mac应用程序时是否可以在不同本地化之间切换?

ios - 根据另一个 uiswitch 的状态更改 uiswitch

ios - 以编程方式获取项目中的框架数组 - Xcode

ios - 如何使用 NSNumbers 在 switch 语句中设置 NSDate

ios - 如何查看当前 URLSessionDownloadTask 的恢复能力?

ios - 访问 plist 数组 Swift XCode

ios - `save(to:for:completionHandler:)` 中的 `UIDocument` 崩溃