ViewForAnnotation n'est pas appelé

Je suis en train de faire une carte, où je peux voir ma position actuelle, et de voir ce que la rue est appelée.

jusqu'à présent, je suis capable de mettre un code pin sur ma carte, mais pour une raison quelconque, je n'obtiens pas de la légende.
et j'ai mis un NSLog dans mon viewForAnnotation méthode, mais il n'est pas appelé, donc je n'ai pas pu le tester.

quelqu'un peut m'aider?

-(void)lat:(float)lat lon:(float)lon
{
CLLocationCoordinate2D location;
location.latitude = lat;
location.longitude = lon;
NSLog(@"Latitude: %f, Longitude: %f",location.latitude, location.longitude);
//One location is obtained.. just zoom to that location
MKCoordinateRegion region;
region.center=location;
//Set Zoom level using Span
MKCoordinateSpan span;
span.latitudeDelta=.005f;
span.longitudeDelta=.005f;
region.span=span;
[map setRegion:region animated:TRUE];
//MKReverseGeocoder *geocoder=[[MKReverseGeocoder alloc] initWithCoordinate:location];
//geocoder.delegate=self;
//[geocoder start];
if (cPlacemark != nil) {
[map removeAnnotation:cPlacemark];
}
cPlacemark=[[CustomPlacemark alloc] initWithCoordinate:location];
cPlacemark.title = mPlacemark.thoroughfare;
cPlacemark.subtitle = mPlacemark.locality;
[map addAnnotation:cPlacemark];
[cPlacemark release];
[mLocationManager stopUpdatingLocation];
}
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
if ([annotation isKindOfClass:[MKUserLocation class]])
return nil;
//try to dequeue an existing pin view first
if ([annotation isKindOfClass:[CustomPlacemark class]]){
MKPinAnnotationView *pinView=(MKPinAnnotationView *)[map dequeueReusableAnnotationViewWithIdentifier:@"customIdentifier"];
if (!pinView)
{
//if an existing pin view was not available, create one
MKPinAnnotationView* cPinAnnoView = [[[MKPinAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:@"customIdentifier"] autorelease];
cPinAnnoView.pinColor = MKPinAnnotationColorPurple;
cPinAnnoView.animatesDrop = YES;
cPinAnnoView.canShowCallout = YES;
//Add button
UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[leftButton addTarget:self action:@selector(annotationViewClick:) forControlEvents:UIControlEventTouchUpInside];
cPinAnnoView.leftCalloutAccessoryView = leftButton;
} else
{
pinView.annotation = annotation;
}
return pinView; 
}
return nil;

}

Droit maintenant, j'ai personnalisé mon viewForAnnotation à être comme ça.
Mais je ne peux toujours pas une légende de mon code pin et le code pin reste rouge.
Mais il convient de pourpre de rien du tout

  • Si votre carte est chargé à partir d'une plume, ne vous souvenez-vous de fil jusqu'? Avez-vous souvenez-vous de définir le délégué?
  • mon délégué est "câblé" pour ma barre de recherche et searchdisplaycontroller ça fonctionne maintenant:P merci, j'ai encore besoin de comprendre pourquoi je ne suis pas une légende bien
  • Vous pouvez poster votre CustomPlacemark classe? Je ne vois pas pourquoi cela ne marcherait pas...
  • J'ai déjà trouvé la réponse, je n'ai pas mis le délégué à ma mapview
InformationsquelleAutor Nico | 2010-09-29