我有一個MKMapView注釋對象,該對象具有正確的標注附件詳細信息顯示按鈕。當按下按鈕時,我正在使用addTarget:action:forControlEvent調用選擇器方法,該方法創建一個詳細的viewController并將其推入視圖堆棧。我的問題是訪問標注詳細信息控制器的注釋上的信息的最佳方法是什么。詳細信息披露按鈕設置為調用:[button addTarget:self action:@selector(disclosurePressed:) forControlEvents:UIControlEventTouchUpInside];看起來像這樣:- (void)disclosurePressed:(id)sender {}我想我可以尋找發送方UIButton的父批注,任何人都可以給我提供任何有關如何最好地完成操作的指針。
2 回答

喵喔喔
TA貢獻1735條經驗 獲得超5個贊
一種可靠的方法(如果必須使用自定義方法)是查看地圖視圖的selectedAnnotations屬性。
雖然該屬性是NSArray,但由于地圖視圖一次只允許選擇一個注釋,因此用戶剛剛點擊的注釋將位于索引0處,因此它將為:
id<MKAnnotation> annTapped = [mapView.selectedAnnotations objectAtIndex:0];
//Here, you can cast annTapped to a custom annotation class if needed.
//Be sure to check what kind of class it is first.
mapView.selectedAnnotations.count為了安全起見,您可能還需要先檢查不為零的值。
但是,比使用addTarget和自定義操作方法更好的方法(正如內文·金已經回答過的)是使用地圖視圖的calloutAccessoryControlTapped委托方法,在該方法中,可以通過view使用以下參數通過參數直接訪問注釋:
id<MKAnnotation> annTapped = view.annotation;
- 2 回答
- 0 關注
- 984 瀏覽
添加回答
舉報
0/150
提交
取消