Partage
  • Partager sur Facebook
  • Partager sur Twitter

[iOS] transmettre infos MKAnnotation apres clique sur bouton

(Bouton dans la bulle, comme googleMap, MKMapView)

Sujet résolu
    26 octobre 2012 à 14:00:19

    Bonjour,

    Je travaille actuellement sur une application, j'ai réussi à afficher une map avec plusieurs pin rouge dessus.
    Lorsque l'on clique sur un pin rouge, un bulle apparaît, invitant l'utilisateur à cliquer sur un bouton qui lui affichera une nouvelle vue avec des détails de l'Annotation (latitude, longitude) etc...

    Ma difficulté, est de transmettre ces infos à ma fonction qui traite l'évènement du boutton!!!
    Voici quelques fonctions déjà faîtes:

    - (MKAnnotationView*)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
        MKPinAnnotationView *pin = (MKPinAnnotationView *) [map dequeueReusableAnnotationViewWithIdentifier: @"annotation"];
        if (pin == nil) {
            pin = [[[MKPinAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"annotation"] autorelease];
        }
        else {
            pin.annotation = annotation;
        }   
        
        UIButton *btnNext = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; // LE FAMEUX BOUTTON POUR ACCEDER AU DETAIL
        NSLog(@"Lat = %f", pin.annotation.coordinate.latitude);
        [btnNext addTarget:self action:@selector(showDetails:)
              forControlEvents:UIControlEventTouchUpInside]; // ShowDetails etant la fonction qui sera appele apres le clic : - (void) showDetails:(id)sender;
        pin.rightCalloutAccessoryView = btnNext; // On rajoute le boutton dans la bulle
        pin.canShowCallout = YES; // On active le popage de la bulle
        return (pin);
    }
    
    - (void) showDetails:(id)sender {
        NSLog(@"On doit changer de vue");
     
        [self.navigationController setNavigationBarHidden:NO]; 
        detailViewController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"detailView"]; // Vue de destination qui affichera les details de l'annotation
        [self.navigationController pushViewController:viewController animated:YES];
        NSLog(@"On a push");
    }
    


    J'arrive a Push, mais je n'arrive pas a avoir les infos de l'annotation dont j'ai cliqué...

    Un peu d'aide s'il vous plaît, j'ai fait l'effort de chercher sur le net.
    Et la solution n'est pas : "Regarde au niveau des transmission de paramètres entre objets" lol c'est pas aussi simple que ça.

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      26 octobre 2012 à 16:50:22

      Tu peux utiliser la méthode
      - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view 
          calloutAccessoryControlTapped:(UIControl *)control
      
      • Partager sur Facebook
      • Partager sur Twitter

      [iOS] transmettre infos MKAnnotation apres clique sur bouton

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown