我的应用可能在很长一段时间没有注意GPS /标题激活。为了管理校准罗盘弹出是否已经完成了。
-(BOOL) locationManagerShouldDisplayHeadingCalibration:(CLLocationManager *)manager {
// NSTimer *dismissHeadingSoon;
// dismissHeadingSoon = [NSTimer scheduledTimerWithTimeInterval:200
// target:self selector:@selector(removeHeadingCalibration:) userInfo:nil repeats:NO];
return YES;
}
-(void) removeHeadingCalibration:(NSTimer *)timer {
[locationManager dismissHeadingCalibrationDisplay];
}
我希望计时器在一段时间后解除弹出窗口(上面注释掉)。我的问题是:校准屏幕现在只显示半秒钟并直接消失?所以我的代码现在只说没有任何计时器启动的YES。如果我删除了委托,它就可以正常工作。
文件说 “回报价值 如果要允许显示航向校准警报,则为YES;不,如果你不这样做。“
我做错了什么? (ios7和xcode 5.1)
答案 0 :(得分:2)
与Apple DTS工程师讨论后,如果您还连接了位置管理器,则无法使用mapView(MKUserTrackingModeFollow)中的标题功能。您需要将userTrackingMode设置为MKUserTrackingModeNone并使用MKMapCamera显示带有来自位置管理器的标题的地图。当我实施 locationManagerShouldDisplayHeadingCalibration,我的代表最终与地图视图冲突,最终他们互相取消。这就是为什么要将其关闭会导致校准屏幕出现。由于我的应用程序将在没有注意的情况下使用数小时,因此取消校准屏幕非常重要,这样我就可以同时使用它。