MapKit - Look Around - isNavigationEnabled not working?

I'm adding Look Around into my app, but settings isNavigationEnabled to true or false does nothing. This bool is set to true by default, and my understanding is that it will enable the user to navigate around the location. I tried setting it to false and that didn't change the experience as the user was able to rotate the camera 360 degrees, but not move around freely in the area.

Is this by design or am I missing something?

Note: I'm on the latest Xcode 14 beta (beta 6).

Here is my basic implementation:

let lookAroundRequest = MKLookAroundSceneRequest(coordinate: location.coordinate!)
lookAroundRequest.getSceneWithCompletionHandler { lookAroundScene, error in

    guard error == nil, lookAroundScene != nil else { return }

    let lookAroundVC = MKLookAroundViewController(scene: lookAroundScene!)
    lookAroundVC.pointOfInterestFilter = .includingAll
    self.present(lookAroundVC)
}

Replies

I have the same problem here. I think that its a bug, on my case, the adress labels are hidden too

This API is a little bit strange, or still very buggy.

Just presenting the MKLookAroundViewController does not let you navigate at all. I hope that this is just a bug.

But what is working is this:

Add the MKLookAroundViewController as child to your main viewcontroller. Then add the view of MKLookAroundViewController as a subview somewhere in your main view controller and make sure it is visible. The view of MKLookAroundViewController will now show a static image of the street and if you tab on this view the MKLookAroundViewController will actually open as "ViewController" in fullscreen (like it would be presented).

Which means you do not present MKLookAroundViewController yourself, instead you let the view of MKLookAroundViewController do this for you after the user taps on this view. This also means it is currently impossible to "navigate" without having the user to do this extra tap on this extra view.

I'm not sure if this is supposed to work this way. But in my opinion this doesn't make much sense, because you can't really do anything useful with this "extra" view. You only need it to indirectly present the MKLookAroundViewController. It would make much more sense to be able to simply present the MKLookAroundViewController directly without the need to show this extra view.

But the fact that the delegate has methods which are called when entering/leaving the fullscreen mode indicates that Apple probably is serious about this. If you would present or dismiss the MKLookAroundViewController yourself, you would not need these delegate messages.

Just to update everyone who might come across this, iOS 17 beta seems to solve this issue now but still an issue with iOS 16.