你可以在這裏使用一堆不同的技巧。
例如,你可以繼續伊娃每個annotationView和做到這一點:
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
if (view == myFirstAnnotationView) {
//do something
}
if (view == mySecondAnnotationView) {
//do something
}
if (view == myThirdAnnotationView) {
//do something
}
}
或者,您可以使用註釋視圖的標籤值。
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
if ([view.tag [email protected]"one"]) {
}
if ([view.tag isEqual[email protected]"two"]) {
}
}
或者,您可以繼承MKAnnotationView以向其添加一些行爲。
- (void)mapView:(MKMapView *)mapView annotationView:(MyMKAnnotationViewSubclass *)view calloutAccessoryControlTapped:(UIControl *)control {
[view doAMethodIMadeWhenISubclassed];
}
沒有,這些是一個完整的解決方案,這將是很難提供一個沒有尤爲明顯瞭解您的應用程序而設計的,但他們都有一個共同特點是什麼改變了annotationView你將它添加到地圖前以便在委託回調發生後決定要做什麼。我希望這會讓你走上正確的道路。
我想出瞭如何去我已經創建的詳細視圖,但我想知道如果你能告訴我如何在沒有任何if語句的情況下分開引腳。我怎麼知道哪個按鈕被按下? – alecnash 2010-06-02 00:10:14
謝謝,告訴你實話,我發現使用按鈕的IBAction更容易一些。 – alecnash 2010-06-03 00:42:42