0

지도의 주석을 선택하고 설명 선 액세서리 컨트롤 버튼을 누를 때 해당 주석의 색인을 찾을 수 있어야합니다. 이 인덱스는 어레이의 정보를보고 다음 뷰 컨트롤러 (자세한 내용)를 준비하는 데 사용됩니다.mapView 주석의 indexPath 가져 오기

주석의 색인을 찾으려면 어떻게해야합니까? 테이블보기에서이 같은

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control 
{ 
NSLog(@"Button clicked"); 
[self performSegueWithIdentifier:@"showDetail" sender:self]; 
} 

감사

+0

각 주석에 대한 태그를 설정하십시오. – user1673099

답변

2

MKAnnotationView * 도면 = ...

NSUInteger 지수 = [mapView.annotations indexOfObject : view.annotation];

+2

이것은지도보기의 주석 목록에있는 주석의 색인을 제공하지만, 해당 위치가 자신의 주석 배열과 일치한다고 가정하는 것은 안전하지 않습니다. @nevan king이 제안한 것처럼 맞춤 주석 클래스에 이미 포함 된 데이터 (또는 참조 된 데이터)가 필요한 접근 방식을 사용하는 것이 좋습니다. – Anna

+0

설명을 저장하는 사용자 정의 주석 클래스를 만들었습니다. NSLog (@ "% @", mapView.annotations.description); 모든 주석에 대한 설명을 인쇄합니다. 내가 선택한 것만을 어떻게해야합니까? – user2920762

+0

NSLog (@ "% @", [[view annotation] description]); 트릭을 했어 – user2920762

2

그것은 인덱스 경로가 없습니다. 자신의 모델 클래스를 MKAnnotation을 준수하도록 주석으로 사용한 다음 개별 모델 항목을 추적하는 데 필요한 모든 논리를 사용하십시오. 또는 모델 항목을있는 그대로 다음보기 컨트롤러로 전달하십시오.

+0

예가 있습니까? 나는 당신의 대답을 이해하지 못합니다. – user2920762

+0

지도에 추가 할 대상의 클래스는 무엇입니까? 예 : "샵"수업 또는 이와 비슷한 수업이 있습니까? –

+0

제목, 부제, 설명 및 주소가 포함 된 여러 객체를 저장하는 배열이 있습니다. 주소 요소에 대한 배열을 반복하고지도에 표시하는 for 루프가 있습니다. 해당 배열 인덱스에 대한 설명을 다음보기 컨트롤러에 표시 할 수있게하려고합니다. – user2920762