How to open call out MKAnnotationView programmatically? (iPhone, MapKit)
callouts, ios, iphone, mapkit, mkannotation
Solution
In your mapViewController create an action method:
- (void)openAnnotation:(id)annotation
{
//mv is the mapView
[mv selectAnnotation:annotation animated:YES];
}
You can then determine the closest annotation based on current location and walking the annotations available in the array.
[mv annotations];
Once the closest annotation is calculated, call:
[self openAnnotation:closestAnnotation];
The mapView should scroll automatically to place your annotation in the center of the display area.
Problem
I want to open up the callout for an `MKPinAnnotationView` programmatically. Eg I drop 10 pins on the map, and want to open up the one closest to me. How would I go about doing this? Apple has specified the 'selected' parameter for `MKAnnotationView's`, but discourages setting it directly (this doesn't work, tried it). For the rest `MKAnnotationView` only has a setHighlighted (same story), and can `ShowCallout` method.. Any hints if this is possible at all?