在swiftui中为一个切换开关分配一个字符串值。

问题描述 投票:0回答:1

我有一个工作正常的形式,但想添加一个toggle表示,如果一个服装是使用或新的。如果它是新的toggle上,如果它使用的条件框将显示用户可以输入服装条件。

当toggle打开时,我想把值设置为静态字符串值 "New"。

我已经尝试过的代码。

Form{
 VStack {
                        Toggle(isOn: self.$itemNew) {
                                  Text("is the item new?")
                             self.$Cond == "New"
                              }

                              if !itemNew {
                                TextField("Item Condition:", text: self.$Cond) {}
                              }
                          }
}

那段代码似乎并不奏效, 有什么建议可以告诉我应该从哪里解决这个问题吗?

谅谅

swiftui toggle
1个回答
0
投票

你不需要使用$,你可以像这样手动创建一个Binding。

Toggle(isOn: Binding(get: {self.cond == "New" ? true : false},
    set: {
        if newValue == true{
             self.cond == "New"
        }else{
            self.cond == "Not really new"
        }
    })) {
        Text("is the item new?")
    }

而self.cond仍然必须是一个@State变量来触发View更新它的视觉表现. 但你的案例看起来并不是很普通的工具. 有没有其他可能的字符串值?

© www.soinside.com 2019 - 2025. All rights reserved.