如何从 SwiftUI 中的操作内部访问按钮的 titleLabel?

How to access a Button's titleLabel from inside it's action in SwiftUI?

非常简单,如果我要声明一个按钮,例如:

Button("buttonLabel") {
    //How do I access the titleLabel.text, in this case "buttonLabel" inside the button's action?
}

旁注:如果我可以添加任何内容来对此进行上下文化,我可以,但我觉得必须有一些超级简单的方法来访问标签...

您可以通过将其声明为主体外部的变量作为 ContentView:

的成员来访问它
struct ContentView: View {
    let buttonLabel = "buttonLabel"

    var body: some View {
        Button(buttonLabel) {
            print("Pressed \(self.buttonLabel)")
        }
    }
}

如果您的要求是 check/modify 按钮文本,那么这里是一个示例:

struct ContentView: View {
    @State var buttonLabel = "Tap me!"

    var body: some View {
        Button(buttonLabel) {
            self.buttonLabel = self.buttonLabel == "Tap me!" ? "I was tapped!" : "Tap me!"
        }
    }
}

如果您只想访问标签的值,可以在您的视图中将其设置为 属性。如果您希望能够从您的操作中修改它,您需要使用 @State 包装器对其进行标记,如下所示。

struct YourView: View {
    @State var label = "Tap Me"

    var body: some View {
        Button(label) {
            self.label = "Tapped!"
        }
    }
}