Я хочу установить значение EnvironmentObject из класса Delegate.
struct AppleMapView: UIViewRepresentable {
@EnvironmentObject var mapViewViewModel: MapViewViewModel
let mapViewDelegate = MapViewDelegate()
class MapViewDelegate: NSObject, MKMapViewDelegate {
func mapView(_ mapView: MKMapView, didChange mode: MKUserTrackingMode, animated: Bool) {
// This is where I want to set value to EnvObj
**mapViewViewModel.mode = mode**
}
}
}
Это то, что я хочу сделать.
Мой код выдает ошибку
Instance member 'mapViewViewModel' of type 'AppleMapView' cannot be used on instance of nested type 'AppleMapView.MapViewDelegate'
Итак, я попытался дать ссылку на класс делегата:
MapViewDelegate(vm: mapViewViewModel)
Это не имеет ошибки компиляции, но когда я запускаю код, который он сделал ошибки
A View.environmentObject(_:) for MapViewViewModel may be missing as an ancestor of this view.: file /BuildRoot/Library/Caches/com.apple.xbs/Sources/Monoceros_Sim/Monoceros-39.4.3/Core/EnvironmentObject.swift, line 55 ```
Ни один не работает. Как я могу исправить свой код?