首页 > 解决方案 > 如何绑定静态字符串?

问题描述

例如,我有这个界面:

import SwiftUI

struct ContentView: View {

    @Binding var statictext : String

    var body: some View {
        Text("My New Text: \(statictext)")
    }
}

和这个类:

class Strings
{
    public static var mytext = "MyText"
}

如何初始化 ContentView?我需要,当我更改 Strings.mytext = “new text” 的值时,界面中的文本变成“我的新文本:新文本”

PS:对不起我的英语)))))

标签: bindingstaticswiftui

解决方案


我不知道这是否是这个问题的正确答案,但你可以这样做,即使你觉得它对我来说有点脏。

import SwiftUI

class Strings
{
    public static var mytext = "MyText"
}

struct ContentView: View {

    @State var statictext : String {
        willSet {
            Strings.mytext = newValue
        }
    }

    init() {
        self._statictext = State(initialValue: Strings.mytext)
    }

    var body: some View {
        VStack {
            Text("My New Text: \(statictext)")

            Button(action: {
                self.statictext = "Test"
            }) {
                Text("Button")
            }
        }
    }
}

推荐阅读