0

我有一张地图,其中有多个注释,这些注释绘制在地图上,这些注释源自 JSON 数据,这些数据在 UITableViewController 中按类别细分,其中包含纬度和经度等信息以及其他信息,例如:地址、电话号码等。 ..

我知道如何为每个注释视图添加一个详细信息披露按钮,但是如何将该信息获取到详细视图控制器中?

- (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 中?

4

1 回答 1

0

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

于 2013-09-19T22:24:37.110 回答