簡體   English   中英

更改布爾值時無法在SwiftUI中更改按鈕文本

[英]Unable to get button text to change in SwiftUI when changing boolean value

我想要一個按鈕,單擊該按鈕時會切換一個布爾值並更改按鈕的文本。 通過使用打印語句,我可以確認該按鈕正確切換了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)
                }
            }

當點擊按鈕時,我希望它通過更改布爾值來更改文本的值。 我計划使用多個這些按鈕。

我認為視圖僅構建一次,因此它不會檢查條件是否每次更改...

您可以做的是將您的文本設置為@State var,然后在進行更改時它將在視圖中自動更新。

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

            }

比較簡單的方法是:

Button(action: {
            Variables.userTriangle.cupShooting = 7
            Variables.userTriangle.triangle[6].toggleStatus()
        }) {
            Text(Variables.userTriangle.triangle[6].status ? "7" : "x")
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM