에 사용자 정의 개체를 전달해야한다. 이 클래스에는 좌표, 제목 및 부제목을 설정하는 init 메서드가 있습니다.MKPinAnnotationView 콜 아웃 버튼 내가 <code>MKAnnotation</code> 프로토콜을 준수 주석 클래스가 세부 사항의 ViewController
나는 이러한 주석의 배열을 만들고 addAnnotations:annotationArray
를 사용하여 MKMapView에 정상적인 방법을 추가합니다.
그런 다음 MKMapViewDelegage 메서드 - (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation
에서 사용자 정의 핀 색상 인 animatesDrop, canShowCallout을 사용하여 MKPinAnnotationView를 만듭니다. 설명 선에는 UIButtonTypeDetailDisclosure
유형의 UIButton이 있습니다.
나는 응용 프로그램을 실행하고 나는 제목, 자막, 그리고 detailDisclosure 버튼으로 선입니다 예상 결과를 얻을지도의 핀을 클릭
.내가 알아 내기 위해 노력하고있어 문제는 사용자가 상세 공개 버튼을 클릭 할 때 세부 사항 페이지 ([self.navigationController pushViewController:detailsController animated:YES];
)에 데이터를 전달하는 방법이다. init 메서드에 추가 매개 변수를 추가하여 주석 클래스를 수정하려고했지만 - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
메서드에서 해당 매개 변수에 액세스 할 수 없습니다. 이 경우 [view.annotation title]
과 같은 작업을 수행하여 제목과 부제목에만 액세스 할 수 있습니다. 내가 여기서 할 모르겠어요
, 나는 다시이 작업을 수행하는 방법에 대한 문서 ...
를 찾을 수 없습니다. 자세히보기 컨트롤러에 개체를 전달하고 싶습니다. 객체에는 세부 정보 페이지에 사용될 다양한 데이터가 포함됩니다 ...
PS - 저는 Xcode 4.2 w/ARC를 사용하고 있습니다.
예.하지만 먼저 'myAnn'의 클래스 유형을 확인하십시오. 사용자가 "현재 위치"주석을 탭하면이 메시지가 나타납니다. 클래스 중 하나라고 가정 할 경우 예외가 구현되지 않은 예외로 중단됩니다. – Steve
감사합니다 안나,이 아름답게 일했다! 또한 현재 위치 문제를 지적한 Steve에게 감사드립니다. 이 오류를 방지하기 위해 몇 가지 추가 코드를 구현했습니다. if ([myMapAnnotation isKindOfClass : [MyMapAnnotation class]]) – ElasticThoughts
@Steve, 좋은 지적입니다. – Anna