SwiftUI: предварительный просмотр на холсте с условным макетом - PullRequest
1 голос
/ 02 мая 2020

Я строю макет с некоторыми условными элементами управления, в зависимости от предпочтений пользователя. Например, я отображаю средство выбора (сегментированное) только в том случае, если пользователь выбрал его просмотр (пользователь устанавливает значение Bool равным true в UserDefaults на странице настроек приложения).

Я пытался установить этот Bool в качестве переменной или константы в моей структуре предварительного просмотра, и мне удалось отобразить мой инструмент выбора на холсте, но я получаю сообщение об ошибке: «Аргумент передан для вызова без аргументов»:

enter image description here

Вот как я объявляю свой Bool:

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 Ответ

1 голос
/ 02 мая 2020

Не делайте это private, так что вы скрываете var, поэтому вместо этого используйте

var isBiqualif: Bool = UserDefaults.standard.bool(forKey: kbiQualif)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...