【问题标题】:MKMAPKITANNOTATION information into a detail viewController by category?MKMAPKITANNOTATION 信息按类别放入详细视图控制器?
【发布时间】:2013-09-18 06:05:28
【问题描述】:

我有一张地图,其中包含多个注释,这些注释绘制在地图上,这些注释源自 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 内每个类别的详细视图控制器?

【问题讨论】:

  • 在创建注解时将保存json响应的字典与注解类绑定
  • 那么我应该为每个类别创建一个注释类吗?
  • 不创建自定义注释类并将该 json 响应作为对象绑定到该类
  • 上面的pinView 变量没有做任何事情。您不妨将其删除。

标签: ios objective-c json mapkit mapkitannotation


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2017-07-15
    相关资源
    最近更新 更多