как вызвать этот метод при нажатии кнопки - PullRequest
0 голосов
/ 25 апреля 2011

Как вызвать этот метод ниже при нажатии динамической кнопки?

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

1 Ответ

0 голосов
/ 25 апреля 2011

Это делегированный метод представления карты, поэтому ваш код не вызывает его напрямую.В представлении карты этот метод вызывается при нажатии на вид аннотации rightCalloutAccessoryView или leftCalloutAccessoryView.

При создании вида карты установите его свойство делегата и в методе viewForAnnotation создайте кнопку и установите ее как rightCalloutAccessoryView или leftCalloutAccessoryView.

Например:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    static NSString *annotationIdentifier = @"annot";
    MKPinAnnotationView *pav = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:annotationIdentifier];
    if (!pav)
    {
        pav = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationIdentifier] autorelease];
        pav.canShowCallout = YES;
        UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        pav.rightCalloutAccessoryView = rightButton;
    }
    else {
        pav.annotation = annotation;
    }

    return pav;
}

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
    //handle tap on annotation...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...