Если карта видима и для showUserLocation установлено значение YES, она продолжает обновляться в фоновом режиме.
Вам необходимо отменить это, когда представление исчезает или когда приложение переходит в фоновый режим.Вероятно, наилучшим способом было бы зарегистрировать ваш viewController, чтобы получать уведомления для UIApplicationDidEnterBackgroundNotification
и UIApplicationDidBecomeActiveNotification
.
- (void)viewDidLoad{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appToBackground) name:UIApplicationDidEnterBackgroundNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appReturnsActive) name:UIApplicationDidBecomeActiveNotification object:nil];
}
Затем в методе, вызываемом этим уведомлением, измените свойства представления карты в отношении userLocation
:
- (void)appToBackground{
[mapview setShowsUserLocation:NO];
}
И
- (void)appReturnsActive{
[mapview setShowsUserLocation:YES];
}
Убедитесь, что эти методы действительно вызываются, установив точку останова и вернувшись к начальному экрану.