我有一个地图,其中有多个注释,这些注释来自JSON数据,这些数据是在UITableViewController中按类别划分的,其中包含纬度和经度等信息以及其他信息,如:地址,电话号码和等......
我知道如何在每个注释视图的注释视图中添加详细信息公开按钮,但是如何将这些信息添加到详细的viewController中?
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
if([annotation isKindOfClass:[MKUserLocation class]]) {
return nil;
}
MKPinAnnotationView *pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"annoPin"];
MKAnnotationView *view = [self.mapView dequeueReusableAnnotationViewWithIdentifier:@"annoView"];
if(!view) {
view = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"annoView"];
}
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton addTarget:nil action:@selector(showDetails :) forControlEvents:UIControlEventTouchUpInside];
pinView.animatesDrop = YES;
view.rightCalloutAccessoryView = rightButton;
view.image = [UIImage imageNamed:@"check.png"];
view.enabled = YES;
view.canShowCallout = YES;
return view;
}
正如您所看到的,我已经创建了一个按钮,但是如何将每个类别的JSON信息转换为UITableViewController内每个类别的详细ViewController?
答案 0 :(得分:0)
当您创建添加到mapview的注释时,您需要向其提供最终将获取到详细视图控制器的所有信息,或者至少引用您稍后可以获得的数据。然后在mapView:annotationView:calloutAccessoryControlTapped:
中,在点击公开按钮时在地图委托上调用,您将获得注释视图的注释并从那里获取数据。