Frage

Ich habe zwei Ansichten. Die erste ist ein MKMapView mit einigen Anmerkungen. eine UIButton Ein Klick drückt eine zweite Ansicht auf den Stapel. Dies hat eine UITableView mit einer Liste von Anmerkungen, die auf die Karte Anmerkungen entsprechen. Also, wenn Sie auf die Schaltfläche Löschen klicken, wie kann ich meinen MKMapView nennen, die in einer anderen Ansicht ist, so dass ich die Anmerkung entfernen. Mein MKMapView ist in meiner AppDelegate erklärt, wie auch meine aktuelle Klasse. Ich versuche, die folgenden zu verwenden, aber es funktioniert nicht:

RideAppDelegate *appDelegate = (RideAppDelegate *)[[UIApplication sharedApplication] delegate];
Annotation *ano;
CLLocationCoordinate2D anoPoint;
anoPoint.latitude = [[eventToDelete valueForKey:@"latitude"] doubleValue];
anoPoint.longitude = [[eventToDelete valueForKey:@"longitude"] doubleValue];
ano = [[[Annotation alloc] init] autorelease];
ano.coordinate = anoPoint;
[appDelegate.ridesMap removeAnnotation: ano];
[appDelegate release];

Ich muss die MKMapView meiner anderen Ansicht falsch zuzugreifen versuchen?

War es hilfreich?

Lösung

  • ridesMap muss der MKMapView sein, die ein Ivar von AppDelegate sein muss. Ist es eine Eigenschaft mit (behalten)? Ist es erstellt und zugewiesen mit self.ridesMap = [[MKMapView alloc] init] oder ähnlichem?
  • Sie sind sicher, Annotation folgt MKAnnotation Protokoll?

(warum die AppDelegate veröffentlichen? Sie tun es nicht allein oder halten.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top