нужна помощь с некоторыми проблемами дизайна на MKMapViewAnnotation - PullRequest
1 голос
/ 04 сентября 2011

Итак, у меня есть вид карты, в котором, если я коснусь вспомогательного вида, он выдвинет новый вид на контроллер навигации. Проблема заключается в том, что я также хотел бы установить локальную переменную этого контроллера представления, когда он будет задействован (в моем контроллере представления у меня есть экземпляр с именем venue, в котором я хотел бы установить) Делегат, который я реализую: 1001 *

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

Я думал о том, чтобы создать подкласс MKAnnotationView и затем сохранить место его хранения, но я думаю, что это противоречит цели, так как MKAnnotationView должен быть только представлением, а не хранилищем данных. Так каков наилучший способ сделать это?

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

1 Ответ

1 голос
/ 04 сентября 2011

Если у вашего объекта аннотации (класс, который соответствует MKAnnotation) уже есть свойство объекта, вы можете получить к нему доступ в calloutAccessoryControlTapped, используя view.annotation, например:

MyAnnotationClass *myAnnot = (MyAnnotationClass *)view.annotation;

DetailViewController *dvc = [[DetailViewController alloc] init...
dvc.venue = myAnnot.venue;
[self.navigationController pushViewController:dvc animated:YES];
[dvc release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...