title: Tap an MKAnnotationView to de-select it and hide it's callout
body: <p>I have an iOS app with custom annotations. </p>
  
  <ol>
  <li>I want to be able to tap an MKAnnotationView once to show it's callout (works fine)</li>
  <li>and then I want to tap the MKAnnotationView a second time to de-select the annotation and hide the callout for that annotation (works in iOS5 but not iOS6).</li>
  </ol>
  
  <p>I understand that didSelectAnnotationView is only supposed to be invoked for the initial selection of an annotation. ([1]: <a href="https://stackoverflow.com/questions/9874255/selecting-a-mapview-annotation-twice">Selecting a MapView Annotation Twice</a>
  ), and based on this article and others I've read ([2]: <a href="https://stackoverflow.com/questions/6449672/ios-mapkit-closing-annotation-callouts-by-tapping-the-map">ios mapkit closing annotation callouts by tapping the map</a>), it looks like detecting any additional tap on an MKAnnotationView after it is selected require a UITapGestureRecognizer.</p>
  
  <p>So, I'm using a UITapGestureRecognizer and I am properly detecting additional taps on my annotation views when they're already selected, and I'm calling deselectAnnotation when I recognize the tap and I'm hiding/de-selecting the callout/annotation respectively.  It works great in iOS5, but it only half works in iOS6</p>
  
  <p>In iOS6 the tap gesture recognizer is invoked, and I call my code to hide the callout and de-select the annotation and everything's fine, but then the selectAnnotationView method gets called somehow and so my callout shows up again and my annotation gets selected again.</p>
  
  <p>What I assume to be happening is that immediately after I do my de-selection of the annotation view in my tap gesture recognizer, the tap event is still active, the mapView detects the touch event and invokes selectAnnotationView, and so the annotation that I <em>just</em> de-selected is now being selected again.</p>
  
  <p>I have no idea why it only happens in iOS6, but I'm hoping for input on any other ideas for handling my desired behavior.</p>