2011-05-10 23 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