iPhone: AddAnnotation ne fonctionne pas lorsqu'il est appelé d'une autre vue

voix
0

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?

Créé 25/05/2010 à 06:20
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
2

Vous créez une deuxième instance de MyRidesMapViewController. Vous devriez ajouterez l'annotation à l'instance d' origine. Vous devez fournir un moyen de faire passer cette instance à votre second point de vue. Il y a plusieurs façons possibles de le faire; le choix optimal dépend de la façon dont votre application est structuré (que nous ne savons pas).

Créé 25/05/2010 à 08:04
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more