Управляйте выбором аннотаций булавки MapKit, касаясь выбора

Я пытаюсь захватить выбор выбора касания булавки MapKit, чтобы выполнить переход к подробному представлению для этого местоположения, у меня есть свойство в аннотации для этого:

#import <MapKit/MapKit.h>

@interface alrededorLocation : NSObject <MKAnnotation> {
    NSString *_name;
    NSString *_address;
    CLLocationCoordinate2D _coordinate;
    NSDictionary *additionalInfo;
}

Но я не могу зафиксировать выбор вывода для выполнения перехода, я пытался управлять им в - (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view

Но мне не удалось получить ссылку на выбранный контакт.

Большое спасибо


person theomen    schedule 23.04.2012    source источник
comment
Вы правильно настроили делегата на своем mapView?   -  person Adis    schedule 23.04.2012
comment
Да, я сделал. проблема в том, как получить выбранный пин. Спасибо.   -  person theomen    schedule 23.04.2012
comment
Ах это. Вы пытались получить доступ к свойству view.annotation в этом методе?   -  person Adis    schedule 23.04.2012
comment
alrededorLocation *tempLocation = view.annotation; [самостоятельно выполнитьSegueWithIdentifier:@detalle sender:tempLocation]; Вот. проблема в том, что я понимаю, что мне нужно управлять просмотром аннотации вместо аннотации, с этим кодом переход ароматизируется при нажатии на булавку. Большое спасибо   -  person theomen    schedule 23.04.2012
comment
Нет проблем, я рад, что помог. Я составлю ответ, чтобы вы могли отметить ответ на вопрос ниже. Кстати, не забудьте назвать свои классы заглавными буквами — AlderorLocation. И кастинг также является хорошей практикой, чтобы избежать предупреждений.   -  person Adis    schedule 23.04.2012
comment
Кстати, вы знаете, как управлять тапом в режиме просмотра аннотаций, а не в аннотации?   -  person theomen    schedule 23.04.2012
comment
Да, вы должны добавить дополнительное представление к вашему представлению аннотаций, а затем поместить свой код в метод mapView:annotationView:calloutAccessoryControlTapped:. Вот официальная документация Apple.   -  person Adis    schedule 23.04.2012


Ответы (1)


Если кто-то наткнется на этот вопрос, ответ — получить доступ к свойству annotation объекта MKAnnotationView. Для этого конкретного случая сработал код:

AlrededorLocation *tempLocation = (AlderorLocation *)view.annotation;
[self performSegueWithIdentifier:@"detalle" sender:tempLocation];
person Adis    schedule 23.04.2012