更改布尔值时,无法在 SwiftUI 中获取要更改的按钮文本

Tho*_*aun 5 xcode ios swift swiftui

我想要一个按钮,当点击它时切换一个布尔值并更改按钮的文本。通过使用打印语句,我可以确认按钮正确切换 bool 值,但它没有更改按钮的文本。

我已经尝试将 bool 默认值手动设置为 false,这确实会更改文本,但是在切换时我仍然无法更改它。

Button(action: {
                Variables.userTriangle.cupShooting = 7
                Variables.userTriangle.triangle[6].toggleStatus()
            }) {
                if !Variables.userTriangle.triangle[6].status {
                    Text("x")
                        .font(.largeTitle)
                } else {
                    Text("7")
                        .font(.largeTitle)
                }
            }
Run Code Online (Sandbox Code Playgroud)

当它点击按钮时,我希望它通过更改布尔值来更改文本的值。我计划有多个这样的按钮。

Qui*_*inn 16

我相信该视图仅构建一次,因此它不会检查是否每次更改条件...

你可以做的是让你的文本成为一个@Statevar 然后当你改变它时它会自动在视图中更新。

@State var someText = "x"

...

Button(action: {
                Variables.userTriangle.cupShooting = 7
                Variables.userTriangle.triangle[6].toggleStatus()
                if (Variables.userTriangle.triangle[6].status) {
                   self.someText = "7"
                } else {
                   self.someText = "x"
                }
            }) {
                Text(self.someText).font(.largeTitle)

            }

Run Code Online (Sandbox Code Playgroud)