SwiftUI PickerView с рабочим CallBack КАК? - PullRequest
0 голосов
/ 29 октября 2019

Ok -

Я хочу, чтобы представление выбора выбирало один оператор: "=", "<", ">" Этот оператор будет отправлен как привязка:

@Binding var op:String

Мой сборщик:

Picker(selection: binding, label: Text("Query Type")) {
            ForEach(0..<self.operators.count) { index in
                Text(self.operators[index]).tag(index)
            }
        }.pickerStyle(SegmentedPickerStyle())
            .padding()

Теперь мое связывание с CallBack:

let binding = Binding<Int>(
    get: {
        return self.pickerSelection
    },
    set: {
        //pickerSelection = $0
        print("SETTTING: \($0)")
        self.op = self.operators[self.pickerSelection]
        self.queryCallback()

    })

Итак, я могу идеально настроить сборщики. НО, когда я возвращаюсь к редактированию моих данных, сборщик никогда не может выбрать существующий связанный оператор, скажем, "<" </p>

Я вставил в init an:
pickerSelection = operator.firstIndex (opValue)

Однако это просто запустит бесконечный цикл, так как pickerSelection является переменной @State

У кого-нибудь есть решение?

1 Ответ

0 голосов
/ 29 октября 2019

Это метод, который работает. Он использует Combine для создания наблюдаемого, который можно использовать для запуска необходимых событий. Также я вижу, насколько полезен Combine с SwiftUI

https://stackoverflow.com/a/57519105/810300

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...