У меня есть ObservedObject
, в который я передаю значения на основе пользовательских данных из TextFields
формы. Однако я хочу, чтобы у пользователя была возможность использовать CoreLocation. Когда они меняют тумблер, я хочу, чтобы входное значение для одного из TextFields
переключилось на моего CoreLocation
издателя. Вот фрагменты кода:
@EnvironmentObject var locationManager: LocationManager
@ObservedObject var calculator: CalculatorObject
@State var useGPS: Bool = false
if self.useGPS {
//I'm not sure what to put here
//I’ve tried several options to set the binding element of the
// CalculatorObject to the speed object of the
// locationManager but they don’t change the values within
// the calculations.
}
var body: Some View {
VStack {
Toggle(isOn: $useGPS) {
Text("Use GPS for Ground Speed")
}
if useGPS {
Text(locationManager.locationInfo.speed)
} else {
TextField("Ground Speed", text: self.$calculator.groundSpeed)
}
}
}
Я пробовал несколько различных опций, но я не могу получить данные от диспетчера местоположения для передачи этих данных в CalculatorObject.
Я подтвердил, что когда Я изменяю переключатель, пользовательский интерфейс равен , показывающий изменение скорости, поэтому я уверен, что издатель местоположения работает. Я не понимаю, как изменить источник привязки здесь.