マップビューがあり、データがWebサービスを介して取得される店舗の場所が10か所あります。クリックしたストアの住所、電話番号、その他の情報を表示するには、詳細ビューにプッシュしたいだけです。
detailview
ユーザーがマップキットの注釈をタップまたは修正したときに、データを自分に渡す必要があります。私には10個の注釈がありmapview
、最初に知りたいのですが、どのように理解できますか、またはどの注釈がクリックされたかのannotationIDを取得するにはどうすればよいですか?
これは私がピンを返す方法です
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]]) return nil;
static NSString* AnnotationIdentifier = @"AnnotationIdentifier";
MKPinAnnotationView* pinView = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier];
pinView.animatesDrop=YES;
pinView.canShowCallout=YES;
pinView.pinColor=MKPinAnnotationColorPurple;
UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton setTitle:annotation.title forState:UIControlStateNormal];
[rightButton addTarget:self
action:@selector(showDetails:)
forControlEvents:UIControlEventTouchUpInside];
pinView.rightCalloutAccessoryView = rightButton;
return pinView;
}
/* and my action method for clicked or tapped annotation: */
- (IBAction)showDetails:(id)sender{
NSLog(@"Annotation Click");
[[mtMap selectedAnnotations]objectAtIndex:0];
magazaDetayViewController *detail = [[magazaDetayViewController
alloc]initWithNibName:@"magazaDetayViewController" bundle:nil];
detail.sehir=@"";
detail.magazaAdi=@"";
detail.adres=@"";
detail.telefon=@"";
detail.fax=@"";
[self.navigationController pushViewController:detail animated:YES];
}
クリックされたアノテーションインデックスを取得できれば、詳細プロパティを配列で埋めることはできません。これが不可能な場合、他に方法はありますか?