Интеграция Mapbox Navigation SDK с SwiftUI 5 - PullRequest
0 голосов
/ 29 марта 2020
import SwiftUI
import Mapbox
import MapboxAnnotationExtension
import MapboxDirections
import MapboxCoreNavigation
import MapboxNavigation

/****** some classes for different types of annotations

struct MapboxRepresent: UIViewRepresentable {

................

   class Coordinator: NSObject, MGLMapViewDelegate {

        func mapView(_ mapView: MGLMapView, tapOnCalloutFor annotation: MGLAnnotation) {
            let navigationViewController = NavigationViewController(for: directionsRoute!)
            navigationViewController.modalPresentationStyle = .fullScreen
            !!!! -> present(navigationViewController, animated: true, completion: nil)
// here is error - Use of unresolved identifier 'present'
        }
   }

.................

}

Этот код работает правильно; он показывает карту и все аннотации. Функция для крана только для тестирования. Поскольку я новичок в SwiftUI5, я не могу понять, как решить эту проблему.

1 Ответ

0 голосов
/ 26 апреля 2020

Вы не можете вызвать .present внутри Координатора, определенного в SwiftUI View. Вам необходимо создать новый SwiftUI View, который представляет Mapbox NavigationViewController. Затем вы можете использовать .sheet, чтобы открыть модальное окно для этого вида навигации Swift. Посмотрите этот учебник , чтобы узнать, как перенести карту Mapbox и навигацию в приложение iOS с помощью SwiftUI.

...