didAddAnnotationViews ne fonctionne pas sur MKMapView

J'ai joué avec le MKMapView et essayé de comprendre comment fonctionne le système MKMapViewDelegate. Jusqu'à présent, je n'ai pas de chance d'get le didAddAnnotationViews pour être appelé lorsque le marqueur d'location actuel est ajouté.

J'ai placé mon délégué d'application pour implémenter MKMapViewDelegate, j'ai un Outlet à MapView dans mon xib et ai mis la propriété de délégué de MapView pour être soi, comme dans l'instance de délégué d'application. J'ai implémenté didAddAnnotationViews dans le délégué de l'application que je simplement NSLog tous les appels comme indiqué ci-dessous. La carte est configurée pour afficher l'location actuel et ajoute l'annotation de broche bleue au démarrage, mais pour une raison quelconque, la command didAddAnnotationViews n'est pas activée.

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views{ NSLog(@"Annotation added!"); } 

Des idées que j'ai peut-être manqué?

mapView:didAddAnnotations: est seulement appelée en réponse à addAnnotation: ou addAnnotations: La broche d'location des users ne triggersra pas cette méthode de délégation.

Je suis tombé sur le même problème dans BNR. Voici ce que j'ai fini par utiliser:

  // Tell MKMapView to zoom to current location when found - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { NSLog(@"didUpdateUserLocation just got called!"); MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([userLocation coordinate], 250, 250); [mapView setRegion:region animated:YES]; } 

Je voulais juste confirmer que je pouvais get ce travail en utilisant

  - (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views { MKAnnotationView *annotationView = [views objectAtIndex:0]; id <MKAnnotation> mp = [annotationView annotation]; MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate], 250,250); [mv setRegion:region animated:YES]; } 

Assurez-vous que vous utilisez mapView.delegate = self; ou [mapView setDelegate: self];