@ Вивианаранха может решить эту проблему, но я верю (после того, как столкнулся с этим сам), что вы делаете что-то еще плохое.
В частности, в моем случае я установил mapView.showsUserLocation = YES
, так что под капотом mapView подключался к CLLocationManager. Решением было убедиться, что я вызвал mapView.showsUserLocation = NO
в viewWillDisappear.
Также я обнаружил, что вы должны установить mapView.userTrackingMode
на то, что вам нужно, прежде чем совершать вызов на mapView.showsUserLocation = YES
. Собрав все воедино, вы получите что-то вроде этого:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.mapView.userTrackingMode = MKUserTrackingModeFollow;
self.mapView.showsUserLocation = YES;
self.mapView.delegate = self;
}
- (void)viewWillDisappear:(BOOL)animated {
self.mapView.userTrackingMode = MKUserTrackingModeNone;
self.mapView.showsUserLocation = NO;
self.mapView.delegate = nil;
[super viewWillDisappear:animated];
}