iPhone MKAnnotation с идентификатором для содержимого базы данных - PullRequest
2 голосов
/ 04 марта 2011

Я пытаюсь использовать MKMap API и интегрировать идентификатор таблицы базы данных, чтобы я мог щелкнуть подробное раскрытие кнопки, чтобы отправить пользователя на другую страницу с дополнительной информацией.Я был на MKMapKit на сайте Apple, чтобы найти какое-нибудь свойство или метод, чтобы помочь мне с этим, и просмотрел несколько уроков без ответов.

Я попытался вложить идентификатор в контекст субтитров, чтобы я мог получить его в MKAnnotationView, где я делаю свой MKPinAnnotationView и добавляю кнопку в rightCalloutAccessoryView.Это ошибки и не хочет работать.

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

MKPinAnnotationView *annView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"mkpin"];  
annView.animatesDrop = YES;  
annView.canShowCallout = YES;  

UIButton *disclosureButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];  
annView.rightCalloutAccessoryView = disclosureButton;  

return annView;  

}

Я использовал эту технику для отдельного булавки на карте, и она, казалось, работала, но мне не требовался идентификатор ...

Когда я пытаюсьчтобы получить подзаголовок аннотации, это убивает приложение.Я знаю, что (id) аннотация является целым числом, но я не знаю, как манипулировать этой информацией.Эта функция выше, я думаю, вызывается после моего кода:

[mapView addAnnotations: markers];// где markers - это массив заголовков, подзаголовок aka id

Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 04 марта 2011

Свойство subtitle предназначено для субтитров, а не для идентификатора базы данных. Нет ничего хорошего в том, чтобы злоупотреблять этим. Даже если бы вы могли заставить его работать, это ужасный подход.

Все, что вам нужно сделать, это дать вашему классу аннотаций подходящее свойство для хранения вашего идентификатора. Когда вам передают аннотацию, вы можете получить к ней доступ, приведя к своему классу аннотаций. Когда вы передаете представление аннотации в других методах делегата, вы можете получить доступ к аннотации через свойство annotation.

...