NavigationViewControlleris a fully-featured user interface for turn-by-turn navigation. Do not confuse it with the
NavigationControllerclass in UIKit.
You initialize a navigation view controller based on a predefined
NavigationOptions. As the user progresses along the route, the navigation view controller shows their surroundings and the route line on a map. Banners above and below the map display key information pertaining to the route. A list of steps and a feedback mechanism are accessible via the navigation view controller.
To be informed of significant events and decision points as the user progresses along the route, set the
NavigationService.delegateproperty of the
NavigationServicethat you provide when creating the navigation options.
CarPlayNavigationViewControllermanages the corresponding user interface on a CarPlay screen.
@objc(MBNavigationViewController) open class NavigationViewController : UIViewController, NavigationStatusPresenter
NavigationViewControllerDelegateprotocol provides methods for configuring the map view shown by a
NavigationViewControllerand responding to the cancellation of a navigation session.
For convenience, several location-related methods in theSee more
NavigationServiceDelegateprotocol have corresponding methods in this protocol.
@objc(MBNavigationViewControllerDelegate) public protocol NavigationViewControllerDelegate : VisualInstructionDelegate
A route voice controller plays spoken instructions as audio using the Speech Synthesis framework, also known as VoiceOver.
You initialize a voice controller using a
NavigationServiceinstance. The voice controller observes when the navigation service hints that the user has passed a spoken instruction point and responds by reading aloud the contents of a
SpokenInstructionobject using an
The Speech Synthesis framework does not require a network connection, but the speech quality may be limited in some languages including English. By default, a
NavigationViewControllerplays spoken instruction susing a subclass,
MapboxVoiceController, that is powered by the MapboxSpeech framework instead of the Speech Synthesis framework.
If you need to supply a third-party speech synthesizer, define a subclass ofSee more
RouteVoiceControllerthat overrides the
speak(_:)method. If the third-party speech synthesizer requires a network connection, you can instead subclass
MapboxVoiceControllerto take advantage of its prefetching functionality.
@objc(MBRouteVoiceController) open class RouteVoiceController : NSObject, AVSpeechSynthesizerDelegate