SwiftUI:使用条件布局在画布中显示预览

时间:2020-05-02 07:12:08

标签: swiftui

我正在使用一些条件控件来构建布局,具体取决于用户的偏好。 例如,仅当用户选择查看选择器时,我才显示它(已分段)(用户在应用程序设置页面的UserDefaults中将Bool设置为true)。

我尝试在预览结构中将Bool设置为var或常量,但我设法将Picker显示在画布上,但是出现错误:“传递给调用的参数不带参数”:

enter image description here

这是我声明我的布尔的方式:

private var isBiqualif: Bool = UserDefaults.standard.bool(forKey: kbiQualif) // kbiQualif is constant string set in a separate file to avoid typos

这是我显示选择器的方式:

if isBiqualif { // User has activated this in settings
                Picker("", selection: $typeSelectorIndex) {
                        ForEach(0 ..< types.count) { index in
                            Text(self.types[index]).tag(index)
                          }
               }
                .pickerStyle(SegmentedPickerStyle())
                    Divider()

                } //  End of if statement for dual rating Picker

以及我最近的预览尝试:

struct CreateTakeoffView_Previews: PreviewProvider {
    static var previews: some View {

     let myBool = true
        return CreateTakeoffView(isBiqualif: myBool)
    }
}

有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:1)

请不要使用private,因为这样会隐藏var,因此请使用

var isBiqualif: Bool = UserDefaults.standard.bool(forKey: kbiQualif)