2011-07-25 102 views
0

在我的應用程序中有多個註釋。如何通過點擊detailDiclosureButton獲取詳細信息

MapLocation *annotation = [[MapLocation alloc] initWithDictionary:tempDict]; 
[mapView addAnnotation:annotation]; 
[annotation release]; 

MapLocation是我保存城市,郵編,國家,地址等信息的類。

在每個註釋的標註中都有detailDisclosureButton。這個按鈕載入另一個視圖(ATM_Details)。當我忘記detailDisclosureButton時,我需要將對應於該註釋的信息傳遞給類ATM_Details。

這個問題讓我發瘋。任何幫助,將不勝感激。

我想使用方法

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control 

但我沒有任何想法,以這種方法實現。

回答

2

MKMapViewDelegate有一個方法MapView類:annotationView:calloutAccessoryControlTapped:。您可以通過讀取註釋屬性的視圖參數來實現此方法並獲取相應的註釋。

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control { 

    MapLocation *annotation = (MapLocation *) [view annotation]; 
    // Get the necessary data from the annotation and pass it to ATM_Details 
+0

就像MapLocation * annotation =(MapLocation *)[view.annotation] ?? – Harsh

+0

不,兩者不一樣。您必須使用點(。)表示法'view.annotation'或Objective-C方法表示法[[view annotation]]。 – EmptyStack

+1

好的。但不知何故,我需要繼續參考我創建註釋的對象。所以在方法 - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)控件,我可以使用該對象。這個怎麼做? – Harsh

0

您可以爲每個按鈕的tagValue分配tagValue,並且可以將相應的信息傳遞給另一個視圖。

+0

在我的應用程序數量的註釋是不同的。任何時候我都不知道有多少註釋會在那裏。所以分配標籤是非常困難和不合理的。 – Harsh

相關問題