I have an annotation class that conforms to the MKAnnotation
protocol. The class has an init method which sets coordinates, title, and subtitle.
I create an array of these annotations and add them to a MKMapView the normal way by using addAnnotations:annotationArray
.
Then in the MKMapViewDelegage method - (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation
I create a MKPinAnnotationView with a custom pin color, animatesDrop, canShowCallout. The callout has a UIButton of type UIButtonTypeDetailDisclosure
.
When I run the application and click on a pin on the map I get the expected results which is the callout with title, subtitle, and the detailDisclosure button.
The thing I'm trying to figure out is how to pass data to a details page ([self.navigationController pushViewController:detailsController animated:YES];
) when the user clicks the detail disclosure button. I tried to modify my annotations class by adding an additional parameter to the init method however I cannot access that parameter in the - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
method. It seems I can only access title and subtitle from there by doing something like this [view.annotation title]
.
I'm not sure what to do here, I can't seem to find any documentation on how to do this either...
Again. I want to pass an object to a detail view controller. The object would contain various data that would be used on the details page...
PS - I'm using Xcode 4.2 w/ ARC.