MKMapView
吹き出しが有効になっているピンがいくつかあります。そして、タップrightCalloutAccessoryView
するUIButtonTypeDetailDisclosure
とdetailViewが開きます。
ここで、ユーザーが吹き出しビューの任意の場所をタップして、detailView を開くことができるようにします。
そのタップを検出するにはどうすればよいですか?
(UICalloutView はプライベート API であることに注意してください)。
左または右のコールアウト アクセサリ ビュー オブジェクトが のサブクラスでUIControl
ある場合 (UIButton があるように聞こえるので、これに該当するはずです)、アクセサリ ビューがタッチされると、マップ ビューはそのデリゲートに自動的に通知します。ボタンのターゲット/アクションを手動で設定する必要はありません。
ビュー コントローラまたは他の適切なオブジェクトがdelegate
マップ ビューの として設定されていることを確認してください。メソッドを実装しmapView:annotationView:calloutAccessoryControlTapped:
ます。このメソッドは、注釈ビューと、タップされた特定のアクセサリ コントロールの両方を提供します。注釈ビュー オブジェクトのプロパティをチェックしてannotation
、詳細ビューを表示するために必要なデータを取得できます。