Cancel the touch handler ( touchesBegan or UITapGestureRecognizer ), and then use - (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view in MKMapView , class reference here . Then add the appropriate annotation to the map using a class that conforms to the MKAnnotation protocol, for example. MKPinAnnotationView .
So, an example of the touch handler method would look something like this:
-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event { CGPoint pt = [[touches anyObject]locationInView:self.mapView]; CLLocationCoordinate2D latLong = [self.mapView convertPoint:pt toCoordinateFromView:self.mapView];
Then add the annotation - this tutorial http://www.raywenderlich.com/21365/introduction-to-mapkit-in-ios-6-tutorial should help you with this - there is a version of iOS5 on the same site.
source share