J'ai deux vues, la première vue a une MKMapView sur elle le nom ridesMap. Le second point de vue est juste une vue avec une UITableView en elle. Lorsque vous cliquez sur le bouton Enregistrer dans la deuxième vue, il appelle une méthode de la première vue:
// Get my first views class
MyRidesMapViewController *rideMapView = [[MyRidesMapViewController alloc] init];
// Call the method from my first views class that removes an annotation
[rideMapView addAnno:newRidePlacemark.coordinate withTitle:rideTitle.text withSubTitle:address];
Cela appelle correctement la méthode addAnno, qui ressemble à:
- (void)addAnno:(CLLocationCoordinate2D)anno withTitle:(NSString *)annoTitle withSubTitle:(NSString *)subTitle {
Annotation *ano = [[[Annotation alloc] init] autorelease];
ano.coordinate = anno;
ano.title = annoTitle;
ano.subtitle = subTitle;
if ([ano conformsToProtocol:@protocol(MKAnnotation)]) {
NSLog(@YES IT DOES!!!);
}
[ridesMap addAnnotation:ano];
}//end addAnno
Cette méthode crée une annotation non conforme à MKAnnotation, et il suppose d'ajouter cette annotation à la carte en utilisant la méthode de AddAnnotation. Mais, l'annotation est ajoutée jamais.
Je ne suis jamais des erreurs lorsque l'annotation ne soit pas ajouté. Mais il n'apparaît lorsque la méthode est appelée.
Pourquoi serait-ce? Il semble que je l'ai fait tout correctement, et que je passe un MKAnnotation correct à la méthode AddAnnotation. Alors, je ne comprends pas pourquoi il ne descend jamais une épingle? Serait-ce parce que je suis appel à cette méthode d'une autre vue? Pourquoi cette question?













