实际上,我从网络服务中检索了很多关于服务站的信息,他们在这里,我为每个工作站显示一个引脚注释,用UIButtonTypeDetailDisclosure
在地图上显示它,现在我想要为每个pin存储一些额外的信息,如:
float lng = [[stationEnCours objectForKey:@"ssiphone_longitude"] floatValue];//that's how i retrieve it from web-service
float lat = [[stationEnCours objectForKey:@"ssiphone_latitude"] floatValue];//that's how i retrieve it from web-service
出于我的目的,我使用这个众所周知的委托方法:
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
NSLog(@"calloutAccessoryControlTapped");
//how to do to store additional informations
}
但我是某种阻止,我怎么能存储与每个引脚相关的其他信息,请帮助,任何建议,示例代码,教程将不胜感激:)))))thx提前
答案 0 :(得分:2)
是的,在MyLocation.h(实现MKAnnotation的类)中声明所有属性。在创建注释时以及在调用addAnnotation
之前,请设置属性。
在calloutAccessoryControlTapped
中,获取这样的属性(示例使用上一个问题中定义的MyLocation中的属性):
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
MyLocation *myLoc = (MyLocation *)view.annotation;
NSLog(@"calloutAccessoryControlTapped: enseigneDeLaStation = %@, distanceVersLaStation=%@", myLoc.enseigneDeLaStation, myLoc.distanceVersLaStation);
}