Обновление карты не работает

Я показываю маршрут между двумя местами. Мой проект основан на навигации. В методе viewWillAppear: я отслеживаю текущее местоположение пользователя с помощью диспетчера местоположений. В методе - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation я получаю координаты текущего местоположения пользователя.

Я рисую карту с этим. Теперь, когда я возвращаюсь к предыдущему виду и возвращаюсь к представлению карты, он не загружает местоположение пользователя. Он не вызывает метод - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation.

Как я могу это исправить? Мне нужно получать маршрут на карте каждый раз, когда я прихожу на этот урок.

заранее спасибо


person cancerian    schedule 20.09.2011    source источник
comment
Вы видите эту проблему на устройстве или в симуляторе? Симулятор не всегда выдает регулярные обновления местоположения.   -  person mjisrawi    schedule 20.09.2011
comment
только в симуляторе. текущее местоположение, которое он показывает, - Купертино. это так, но во второй раз, когда я нажимаю кнопку «Карта», местоположение снова не загружается.   -  person cancerian    schedule 20.09.2011


Ответы (1)


Я тоже собираюсь ответить на свой вопрос:

Я видел сообщения о том, как сбросить представление, перерисовать слой и т. д. Я довольно (не новичок) неопытен в языке, поэтому то, что я сделал, — это хак, но это работает. Я надеюсь, что вы используете это, если вам нужно, но найти лучшее решение.

Просмотр контроллера:

- (void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    mapView.region = MKCoordinateRegionMakeWithDistance([mapView centerCoordinate],2587600.0, 2587600.0);

}

- (void)viewWillDisappear:(BOOL)animated {

    [super viewWillDisappear:animated];

    mapView.region = MKCoordinateRegionMakeWithDistance([mapView centerCoordinate],5.0, 5.0);
}

Итак, когда вид уходит, ну... вид, то карта очень сильно увеличивается. Когда вид возвращается в вид, данные перезагружаются и вуаля. Ваш пробег может отличаться, но этот метод отлично работает для того, что мне нужно.

И это совсем не побочный эффект. Это бесшовно. С точки зрения пользовательского интерфейса ничего не меняется.

ваше здоровье! Роберт

person roberthuttinger    schedule 18.10.2011