Я тоже только что столкнулся с той же проблемой, что и Канопус. Похоже, что даже если вызывается stopUpdatingLocation, указатель навигации по-прежнему находится в строке состояния, если у меня включена функция showUserLocation. Возможно, это ошибка? Это может быть из-за того, что я работаю и тестирую с iOS 4.2.1, и эта проблема могла быть исправлена в более позднем SDK.
Я бы подумал, что если вызывается stopUserLocation, он также перестанет показывать местоположение пользователя, поскольку представление, в котором я его использую, уже исчезло и впоследствии освобождено.
Похоже, вы должны установить для showUserLocation значение NO, прежде чем останавливать обновления местоположения пользователя.
В любом случае, в моем методе viewDidLoad у меня есть следующий код:
self.mapView.showsUserLocation = YES;
Еще код ...
- (void)viewWillDisappear:(BOOL)animated
{
if (locationManager)
{
mapView.showsUserLocation = NO;
[locationManager stopUpdatingLocation];
}
[super viewWillDisappear:animated];
}
- (void)dealloc
{
if (locationManager)
{
[locationManager release];
locationManager = nil;
}
(other code)
}