将MKMAPKITANNOTATION信息分类为详细视图控制器?

时间:2013-09-18 06:05:28

标签: ios objective-c json mapkit mapkitannotation

我有一个地图,其中有多个注释,这些注释来自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?

1 个答案:

答案 0 :(得分:0)

当您创建添加到mapview的注释时,您需要向其提供最终将获取到详细视图控制器的所有信息,或者至少引用您稍后可以获得的数据。然后在mapView:annotationView:calloutAccessoryControlTapped:中,在点击公开按钮时在地图委托上调用,您将获得注释视图的注释并从那里获取数据。