2012-03-17 144 views
2

我的班級設置爲位置管理員的代表,並且此代碼中的日誌確實打印。iPhone:locationManagerShouldDisplayHeadingCalibration忽略/不執行任何操作

- (BOOL)locationManagerShouldDisplayHeadingCalibration:(CLLocationManager *)manager { 
     NSLog(@"will NOT display calibration"); 
     [manager performSelector:@selector(dismissHeadingCalibrationDisplay) withObject:nil afterDelay:.25]; //This should never get displayed but does for some reason 

     return NO; 
} 

儘管如此,校準擋板始終顯示在應用程序。更令人討厭的是,它忽略了我不要求顯示的要求,因爲從5.1開始,校準似乎非常敏感:只要手機靠近收音機,計算機或不在露天場地,它就會出現每次我運行應用程序。

這將推動我的用戶瘋狂,我正考慮從我的應用程序中刪除標題。

任何人都知道如何關閉校準?這不是一個荒野生存工具。

回答

4

我相信我知道是什麼造成這種情況。如果您使用MKMapView,並且將跟蹤模式與標題一起使用,那麼mapview會有自己的位置管理器,並且該位置管理器會自動設置爲要求標題校準。作爲位置管理者的一個噩夢是一個無法訪問的隱藏變量。

0

爲的MKMapView的解決方法是調用此:

_mapView.userTrackingMode = MKUserTrackingModeNone; 

你釋放_mapView之前。

當您導航到不同的頁面時,這將使校準消息消失。

0

無法SG1答案評論,SI我會做在這裏:

這樣的話,你怎麼認爲管理校準屏幕,如果你不能在MKMapKit訪問位置管理器變量?我知道其他應用程序這樣做......這應該不是那麼困難!

+0

如果您在運行時檢查mapview,但使用私有變量並可能在將來中斷,可以這樣做。我沒有看到這個問題,因爲我面對它,但它可以改善任何新版本。 – SG1 2015-09-09 03:14:36

相關問題