Eigentlich entwickle ich etwas in meiner App, das Anmerkungen in meinem MKMapView
anzeigt, und diese Anmerkungen sollten anklickbar sein und einen Parameter an eine Methode übergeben.
Das Problem besteht jetzt darin, wie der Parameter an die nächste Funktion übergeben wird, wenn Sie auf die Schaltfläche zum Anzeigen tippen.
Für die Formatierung der Anmerkungen verwende ich die - (MKAnnotationView *)mapView:(MKMapView *)aMapView viewForAnnotation:(id <MKAnnotation>)annotation
Methode, um die Offenlegungstaste anzuzeigen. Aber das Problem ist, wie man Werte aus dem Annotation
Objekt erhält, das im Moment angezeigt wird?MKAnnotationView und Weitergabe von Daten an eine andere Funktion
Mein Code für die Annotation
(nur der relevante Teil):
@synthesize coordinate, id, title, subtitle;
+ (id)annotationWithCoordinate:(CLLocationCoordinate2D)coordinate {
return [[[[self class] alloc] initWithCoordinate:coordinate] autorelease];
}
- (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate {
self = [super init];
if(nil != self) {
self.coordinate = coordinate;
}
return self;
}
Und wenn die Offenlegung Taste das Verfahren berühren - (void)displayInfo:(NSNumber *) anId;
sollte mit der Übergabe Annotation.id
als anId
param aufgerufen werden.
Die Offenbarung Taste wird mit diesem Code generiert:
UIButton *disclosureButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
dropPin.rightCalloutAccessoryView = disclosureButton;
dropPin.animatesDrop = YES;
dropPin.canShowCallout = YES;
So - die Frage:
Wie kann ich diese param an die Funktion übergeben oder die id
des angeklickten Annotation
lesen?
Ich dachte, ich könnte die Handhabung des Tap auf DisclosureButton entweder mit einem Selektor für UIButton tun (aber - wie die ID übergeben?) Oder mit - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
(wieder - wie die ID übergeben?).
Ich hoffe, Sie wissen, was ich meine und sehr großen Dank im Voraus für Ihre Antworten! :)
Auch in Annotations-Klasse, es sieht aus wie Sie eine Eigenschaft namens „id“ deklariert haben? Ich empfehle Ihnen dringend, es anders zu nennen, und, wie ennuikiller antwortete, brauchen Sie es vielleicht nicht einmal. – Anna
Das ist eine gute Idee ;-), du hast Recht. Vielen Dank für Ihre Hilfe. – thedom