Как правильно передать переменную класса SwiftUI в ContentView? - PullRequest
0 голосов
/ 07 мая 2020

Я использую SDK Mapbox ... в моем классе MapViewCoordinator (этот класс принимает протоколы NSObject, MGLMapViewDelegate и Я ДУМАЮ, но не уверен насчет протокола ObservableObject), у меня есть переменная @State с именем annotationSelected . Значение этой переменной изменяется при выборе аннотаций карты. Я пытаюсь получить доступ к этой переменной annotationSelected из ContentView, но не знаю, как это сделать. Вот мой код MapViewCoordinator:

class MapViewCoordinator: NSObject, Observable Object, MGLMapViewDelegate {
@State var annotationSelected = false
func mapView(_ mapView: MGLMapView, annotationCanShowCallout annotation: MGLAnnotation) ->
    Bool {
    return true
}
//Other functions that change the value of annotationSelected
}

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

1 Ответ

0 голосов
/ 07 мая 2020

@State предназначен для просмотра, а ObservableObject имеет @Published для динамического c обновления, поэтому используйте, как показано ниже

class MapViewCoordinator: NSObject, ObservableObject, MGLMapViewDelegate {
   @Published var annotationSelected = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...