У меня есть вид карты, который при выводе его контроллера вида на экран показывает местоположение пользователя и некоторые другие пользовательские аннотации.когда контроллер представления выдвигается на экран, он вызывает функцию - (void) adduserLocation, которая показывает местоположение пользователя.
У меня также есть кнопка обновления, которая также вызывает - (void) adduserLocation и обновляет всеаннотации и местоположение пользователя, но при нажатии кнопки обновления местоположение пользователя не отображается на карте, даже если регистрируются все те же обратные вызовы и обновления (я вижу, что местоположение пользователя получено и все необходимые обратные вызовы выполнены)
Я использую:
-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation {
if ([annotation isKindOfClass:[MKUserLocation class]])
return nil; //for some reason this is only being returned when the view is pushed and the get
//location method is called but not when the same location method is called
//while the view already exists.
}
и:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
NSLog(@"User location: %f, %f", newLocation.coordinate.latitude, newLocation.coordinate.longitude);
currentRegionLat = newLocation.coordinate.latitude;
currentRegionLng = newLocation.coordinate.longitude;
CLLocationCoordinate2D coord = {latitude: newLocation.coordinate.latitude, longitude: newLocation.coordinate.longitude};
MKCoordinateSpan span = {latitudeDelta: 0.006, longitudeDelta: 0.006};
MKCoordinateRegion region = {coord, span};
[mView setRegion:region];
[self getCardsInLocationLat:newLocation.coordinate.latitude andLng:newLocation.coordinate.longitude]; //this is a function which sets the annotations
}
Я понятия не имею, что могу делать неправильно.Пожалуйста помоги.Спасибо.
* ОБНОВЛЕНИЕ ** Мне удалось найти источник проблемы и обойти ее: Проблема заключалась в том, что я удалял все аннотации накарта перед выполнением обновления местоположения и по какой-то причине аннотация местоположения пользователя не добавлялась.Поэтому я просто удалил только все аннотации, не относящиеся к [MKUserLocation class], и оставил аннотацию местоположения пользователя.Это решило мою проблему, но я все еще думаю, что либо здесь есть какая-то ошибка с яблоком, либо я делаю что-то не так, чего пока не вижу.