2011-09-04 104 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];