showDetails:
メソッドでは、マップビューのselectedAnnotations
配列からピンをタップすることができます。代わりにaddTarget
をやって実装するので、ところで
//To be safe, may want to check that array has at least one item first.
id<MKAnnotation> ann = [[mapView selectedAnnotations] objectAtIndex:0];
// OR if you have custom annotation class with other properties...
// (in this case may also want to check class of object first)
YourAnnotationClass *ann = [[mapView selectedAnnotations] objectAtIndex:0];
NSLog(@"ann.title = %@", ann.title);
:プロパティがNSArray
ですが、マップビューは、1つのピンのみを一度に選択することができるため、単に配列の最初の項目を取得しますカスタムメソッドでは、マップビューのcalloutAccessoryControlTapped
デリゲートメソッドを使用できます。タップ注釈はview
パラメータで提供されています:
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view
calloutAccessoryControlTapped:(UIControl *)control
{
NSLog(@"ann.title = %@", view.annotation.title);
}
あなたがcalloutAccessoryControlTapped
を使用する場合はviewForAnnotation
からaddTarget
を削除していることを確認します。
2つのアノテーションのタイトルが同じ場合はどうなりますか? –
私はサブクラス化して行うことができますが、簡単な方法はありますか? –
@Anna、これは本当に私を助けました..ありがとう+1 –