在我的地圖上,我有一個rightCalloutAccessoryView
與UIButtonTypeDetailDisclosure
。我想檢測用戶是否點擊註釋的中心或UIButtonTypeDetailDisclosure
。 例如,如果他點擊中心:執行名爲XYZ的segue,如果在UIButtonTypeDetailDisclosure上點擊:執行名爲ABC的segued。檢測用戶是否點擊註釋的中心或右邊的UIButtonTypeDetailDisclosure?
這是我的代碼。問題是UIButtonTypeDetailDisclosure
和註釋執行名爲「infoDetail」的同一個segue。我用rightCalloutAccessoryView
和leftCalloutAccessoryView
上的標籤嘗試不同的配置,以檢測哪一個被點擊,但是如何通過右側的UIButtonTypeDetailDisclosure
來檢測註釋的中心?
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
MKAnnotationView *aView;
for (aView in views) {
if (![aView.annotation isKindOfClass:[MKUserLocation class]]) {
MKAnnotationView* annotationView = aView;
annotationView.rightCalloutAccessoryView = [UIButton buttonWithType: UIButtonTypeDetailDisclosure];
annotationView.rightCalloutAccessoryView.tag = 1;
annotationView.leftCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeContactAdd];
annotationView.leftCalloutAccessoryView.tag = 2;
}
} }
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
if ([control tag] == 1) {
// Right Accessory Button Tapped
[self performSegueWithIdentifier:@"infoDetail" sender:self];
} else if ([control tag] == 2) {
// Left Accessory Button Tapped
[self performSegueWithIdentifier:@"contactDetail" sender:self];
} }