Est-il possible d'afficher un contrôleur View avec plus de détails de l'annotation Map sur un nouveau contrôleur de vue qui, lorsqu'il est déplacé, revient à la vue MKMap avec les annotations à cette position. Je n'arrive pas à trouver un moyen dans la documentation du SDK qui semble indiquer que c'est possible.MKMap Annotations lorsque vous cliquez sur Afficher un contrôleur View au lieu de Popup
0
A
Répondre
2
trouvé la réponse à ma question si vous effectuez les opérations suivantes:
Ce que vous pouvez faire est d'utiliser un observateur à la place donc dans la méthode
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
vous pouvez ajouter le code comme ceci:
//Add an observer for the selected-property on the MKAnnotationView. Delegate to self.
[annotationView addObserver:self
forKeyPath:@"selected"
options:NSKeyValueObservingOptionNew
context:GMAP_ANNOTATION_SELECTED];
annotationView.annotation = annotation;
annotationView.canShowCallout = NO;
puis créer une capture d'observateur qui appellera la méthode pour rendre tout point de vue lorsque l'utilisateur clique sur l'annotation sur l'écran:
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context{
NSString *action = (NSString*)context;
if([action isEqualToString:GMAP_ANNOTATION_SELECTED]){
BOOL annotationAppeared = [[change valueForKey:@"new"] boolValue];
if (annotationAppeared) {
[self showAnnotation:((AssetAnnotationView*) object).annotation];
}
else {
//NSLog(@"annotation deselected %@", ((AssetAnnotationView*) object).annotation.title);
//[self hideAnnotation];
}
}
}
ont alors votre méthode qui affiche une vue modale ou tout ce que vous voulez:
- (void)showAnnotation:(AssetAnnotationView*)annotation {
UINavigationController *aNavController = [[UINavigationController alloc] initWithRootViewController:self.assetInfoViewController];
aNavController.navigationBar.barStyle = UIBarStyleBlack;
[self presentModalViewController:aNavController animated:YES];
[aNavController release];
}
Unselect dans viewWillAppear:
NSArray * selected = [localMapView selectedAnnotations]; pour (id annotation dans sélectionné) { [localMapView deselectAnnotation: annotation animée: NO]; }
0
Vous pouvez également utiliser une balise pour chaque annotation que vous créez. Travaille pour moi.
Questions connexes
- 1. Comment afficher un TPopupMenu lorsque vous cliquez sur un TButton?
- 2. Cliquez sur popup (linux)
- 3. popup retourne à l'état caché lorsque vous cliquez en dehors de la zone popup
- 4. Popup UIPicker au lieu du clavier
- 5. comment naviguer dans l'application en utilisant MKMap View dans Iphone?
- 6. Rediriger sur un objet SWFO lorsque vous cliquez sur Plein écran?
- 7. Comment afficher des guillemets au lieu de guillemets lorsque vous utilisez le paquet 'listings' de LaTeX?
- 8. obtenir une petite liste lorsque vous cliquez sur un bouton
- 9. Retour au début de la pile UINavigationController lorsque vous cliquez sur un onglet?
- 10. JSF - Afficher le composant jsf lorsque vous cliquez sur un autre composant
- 11. Désactiver la commutation automatique lorsque vous cliquez sur UISwitch?
- 12. Google map API v3 cliquez sur l'événement raise lorsque vous cliquez sur MoreMarkerClusterer?
- 13. informations sur les cellules lorsque vous cliquez sur la cellule
- 14. Comment activer une fonction + popup lorsque vous cliquez en dehors d'une carte dans Openlayers?
- 15. empêcher de basculer lorsque vous cliquez sur les éléments imbriqués
- 16. événement javascript lorsque vous cliquez sur «retour» sur la page?
- 17. Effacer ListBox Sélection lorsque vous cliquez sur une zone vide
- 18. Contrôleur Split View iPad
- 19. Vous voulez ouvrir FB.Connect.streamPublish dans un popup
- 20. SSRS: paramètres ASP.NET ReportViewer réinitialisés aux valeurs par défaut lorsque vous cliquez sur Afficher le rapport
- 21. Afficher une activité sur un bouton cliquez sur
- 22. Java Swing - Afficher la bordure des contrôles lorsque vous cliquez sur la touche Tab ne
- 23. Contour étrange lorsque vous cliquez sur contentEditable div
- 24. Changer l'écran lorsque vous cliquez sur le bouton
- 25. Javascript rediriger lorsque vous cliquez sur le bouton Retour
- 26. UIButton qui parcourt les images lorsque vous cliquez sur
- 27. Un événement côté serveur est-il déclenché lorsque vous cliquez sur DetailsView cancelButton?
- 28. iPhone iPad UIView contrôleur popup centré
- 29. Appelez la fonction lorsque vous cliquez sur le bouton html
- 30. Les contrôles créés dynamiquement disparaissent lorsque vous cliquez sur
assurez-vous de désélectionner l'annotaiton dans votre viewDidAppear/viewWillAppear sinon vous rencontrerez le même problème que moi et ne pourrez plus sélectionner l'annotation. – vladzz
Et comment désélectionnez-vous l'annotation? J'essaye ici sans succès. – goo
Pas le moyen le plus efficace de le faire. Mais cette méthode semble fonctionner. NSArray * selected = [localMapView selectedAnnotations]; pour l'annotation (id sélectionnée) { [localMapView deselectAnnotation: annotation animée: NO]; } –
vladzz