Vous pouvez utiliser un tas de techniques différentes ici.
Par exemple, vous pouvez garder un Ivar pour chaque annotationView et faire:
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
if (view == myFirstAnnotationView) {
//do something
}
if (view == mySecondAnnotationView) {
//do something
}
if (view == myThirdAnnotationView) {
//do something
}
}
Ou, vous pouvez utiliser la valeur de la variable de la vue d'annotation. Ou, vous pouvez sous-classer MKAnnotationView pour ajouter un comportement à celui-ci.
- (void)mapView:(MKMapView *)mapView annotationView:(MyMKAnnotationViewSubclass *)view calloutAccessoryControlTapped:(UIControl *)control {
[view doAMethodIMadeWhenISubclassed];
}
Aucun de ces médicaments est une solution complète et il serait difficile de fournir un sans Beter comprendre votre application et la conception, mais ce qu'ils ont tous en commun est en train de changer la annotationView avant de l'ajouter à la carte afin de décider quoi faire après le rappel du délégué se produit. J'espère que cela vous mène sur le bon chemin.
J'ai trouvé comment aller à la vue détaillée que j'ai créée mais je me demandais si vous pouviez me dire comment séparer les broches sans aucune instruction if. Comment puis-je savoir quel bouton est poussé ??? – alecnash
Merci, pour vous dire la vérité, j'ai trouvé qu'il était un peu plus facile d'utiliser un IBAction pour les boutons. – alecnash