2011-05-10 45 views
0

实际上,我已经从web服务中获取了很多关于服务站的信息,他们在这里,我为每个站显示了一个pin注释,以便在Map上显示它UIButtonTypeDetailDisclosure,现在我想存储每个引脚一些额外的信息,如:如何在MKPinAnnotation中存储一个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 

    } 

,但我某种受阻,我如何存储与e有关的其他信息请帮助,任何建议,示例代码,教程将不胜感激:))))))提前thx

+2

我不知道的困难是什么。你没有实现MKAnnotation协议的自定义类吗?在calloutAccessoryControlTapped中,可以使用view.annotation访问注释。 – Anna 2011-05-10 13:34:39

+0

嗨,我有一个名为MyLocation实现MKAnnotation协议的类,我应该在'MyLocation.h'文件中声明我将在详细视图中显示的所有属性,如果是这样,我如何分配和获取值,换句话说,我如何在'calloutAccessoryControlTapped'方法中读取它? thx提前:) – Luca 2011-05-10 13:52:16

回答

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); 
} 
+0

你有多酷! thx很多:) – Luca 2011-05-10 15:37:57

+0

嗨,安娜,请在这种方法('calloutAccessoryControlTapped'),我想移动到另一个视图,他将能够看到的细节,所以我这样做'[自我presentModalViewController:detailStation animated:YES];'但是,我看到一个白色屏幕,虽然'detailStation'在IB中声明和连接,你能帮我吗? thx提前:) – Luca 2011-05-10 18:37:46

+0

你应该问一个新的问题,并在calloutAccessoryControlTapped中包含完整的代码,显示detailStation在代码中的声明方式和位置,以及它在IB中的连接方式。 – Anna 2011-05-10 18:55:39