2011-09-04 80 views
1

所以我有一个地图视图,如果我点击附件视图,它会将新视图推送到导航控制器。问题是,我还想设置一个视图控制器的本地变量,当它被点击时(在我的视图控制器中,我有一个实例叫做会场,我想要设置)我正在实现的代表是:需要关于MKMapViewAnnotation上的一些设计问题的帮助

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

我在想什么是子类MKAnnotationView,然后有一个场地存储有作为,但我认为这违背了目的为MKAnnotationView只应该是一个视图,而不是数据存储。那么做到这一点的最好方法是什么?

换句话说,问题是,每个引脚都有一个场所,我需要通过上面的代理传递给视图控制器实例。

回答

1

如果你的注释对象(符合MKAnnotation类)已经有一个场地属性,你可以在使用calloutAccessoryControlTappedview.annotation这样的访问:

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

DetailViewController *dvc = [[DetailViewController alloc] init... 
dvc.venue = myAnnot.venue; 
[self.navigationController pushViewController:dvc animated:YES]; 
[dvc release];