Отображение TableView, когда MKAnnotation (Pin) в MKMapView коснулся / нажал / нажал - PullRequest
0 голосов
/ 13 июля 2011

Я хочу отображать довольно много демографических данных для определенного булавки, когда кто-то касается его, поэтому предоставление всплывающего окна не приведет к его сокращению.Я подумал, что после прикосновения к контакту я просто прикреплю tableviewController к NavigationController, и табличное представление получит доступ к объекту и отобразит информацию об отдельных объектах, с одним элементом на строку и 1 секцией.

В любом случае яМне трудно разобраться в методах MKMapViewDelegates, так как кажется, что ни один из них не делает то, что мне нужно, и / или не позволяет мне возвращать табличное представление или выдвигать это представление на контроллер навигации.

Я играл с:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation;   

Но для этого требуется вернуть MKAnnotationView, и мне просто нужен этот метод, чтобы показать пользователю табличное представление всех данных.Я надеялся на что-то простое, как метод userDidTouchPin ....

У кого-нибудь есть идеи, как добиться того, что я пытаюсь сделать?

1 Ответ

2 голосов
/ 13 июля 2011

Если вы хотите что-то сделать, когда пользователь выбирает контакт (а не кнопку в его выноске), то реализуйте метод делегата mapView:didSelectAnnotationView: и представьте или отправьте туда свой контроллер подробного просмотра.

Выбранный объект аннотации доступен как свойство annotation параметра view:

- (void)mapView:(MKMapView *)mapView 
    didSelectAnnotationView:(MKAnnotationView *)view
{   
    YourDetailViewController *dvc = [[YourDetailViewController alloc] init...
    dvc.annotation = view.annotation;
    //present or push here
    [dvc release];
}

Вам может потребоваться проверить, какой тип аннотации был выбран (например, если был выбран MKUserLocation, ничего не делать и т. Д.), И вам может потребоваться преобразовать view.annotation в свой собственный класс аннотаций, чтобы легко получить доступ к любым пользовательским свойствам, которые могут у вас быть. .

...