如何在切换跟踪模式时旋转iOS MKMapView以使其朝北?

我正在使用iPad应用程序(iOS 5.1),并使用MKMapView在我的应用程序中显示地图。

我使用MKUserTrackingModeNone,MKUserTrackingModeFollow,MKUserTrackingModeFollowWithHeading在这三种不同的地图方向模式之间切换。

不过,当从MKUserTrackingModeFollowWithHeading切换到MKUserTrackingModeNone时,我有一个地图的方向没有重置为朝北的方向(地图上的北方位于屏幕的顶部)的问题。

在iPad上内置的地图应用程序,stream程是这样的:

  1. 当你启动应用程序,它是在MKUserTrackingModeNone模式,是北向
  2. 当您切换方向模式时,它将更改为MKUserTrackingModeFollow,方向仍然为北。
  3. 当您再次切换时,它会更改为MKUserTrackingModeFollowWithHeading,并根据您面对/指向iPad的方向旋转地图。
  4. 当您再次切换方向时,它会返回到MKUserTrackingModeNone,并且地图很好地旋转回到北方。

我希望我的应用程序在切换模式时对于方向采用相同的方式,但是当按照上面的步骤4进行操作并从MKUserTrackingModeFollowWithHeading切换到MKUserTrackingModeNone时 ,方向将保持原样,而不是旋转方向开关回到北方。

我正在做一个工具栏中的标准MKUserTrackingBarButtonItem控件的方向开关。

任何想法如何解决这个问题?

谢谢!

你是否使用标准的iOSbutton栏项目来做到这一点? 我的应用程序,只要我从followWithHeading点击它非旋转回北向上。

这是一个快速的解决scheme,虽然不是很优雅,

https://stackoverflow.com/a/16576802/2077435