Ok les gars, donc j'ai une vue de la carte avec des annotations et quand ils sont sur écoute, ils affichent des légendes avec une icône de divulgation sur la droite. Quand on tape dessus, cette fonction est appelée:Extraction du titre de MKAnnotation Callout à l'expéditeur
- (void)showDetails:(id)sender
{
NSLog(@"showDetails: called!");
NSLog(@"sender: %@",sender);
PermitDetailViewController *permitDetail = [[PermitDetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
NSLog(@"permitDetail.title: %@",permitDetail.title);
permitDetail.title = sender.title; //compiler doesn't like this!
NSLog(@"permitDetail.title: %@",permitDetail.title);
[self.navigationController pushViewController:permitDetail animated:YES];
[permitDetail release];
}
Tout va bien jusqu'à présent, mais je dois savoir ce qui était le titre de la légende. J'essaie de faire sender.title mais ça ne marche pas bien ... Des idées?
C'est la sortie de la console lorsque je change la ligne problématique permitDetail.title = self.title;
:
2010-12-02 11:50:06.044 Parking[55413:207] showDetails: called!
2010-12-02 11:50:06.045 Parking[55413:207] sender: <UIButton: 0x8139890; frame = (104 8; 29 31); opaque = NO; autoresize = LM; layer = <CALayer: 0x8139920>>
2010-12-02 11:50:06.045 Parking[55413:207] permitDetail.title: (null)
2010-12-02 11:50:06.045 Parking[55413:207] permitDetail.title: All Permits
Je suis confus par cette déclaration: «Dans viewForAnnotation, retirez le addTarget sur le bouton de divulgation Il suffit de définir comme le bouton de rightCalloutAccessoryView de la vue d'annotation. » Il me semble que vous suggérez de me débarrasser de l'icône de divulgation sur la légende et de l'avoir pour que l'utilisateur appuie sur la légende pour accéder à la vue détaillée. Je préférerais vraiment avoir cette icône de divulgation si possible. Je sens toujours que je ne comprends pas tout ce que tu as dit, que tu me l'esquissais un peu? Merci. – Stunner
Nevermind ... Je l'ai compris. Je me suis débarrassé de la méthode addButton ...: \t UIButton * rightButton = [UIButton buttonWithType: UIButtonTypeDetailDisclosure]; \t annotationView.rightCalloutAccessoryView = rightButton; Et puis j'ai mis en place ce que vous avez dit de mettre en œuvre et cela a fonctionné! Vous connaissez votre truc mec, les accessoires! – Stunner
Merci, ça a marché. Désolé, je n'étais pas clair. Je voulais dire supprimer l'appel à addTarget. Vous n'avez pas besoin de spécifier votre propre méthode pour appeler le clic sur la légende, car la vue de la map dispose d'un délégué. – Anna