2011-09-02 2 views
2

내가 myannotation 클래스 정의의 문자열로 beepid 추가하고이 휴식입니다 :annotaion을 선택하고 특정 세부 정보 페이지로 ID를 전달하는 방법은 무엇입니까?

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control 
{ 
    DLog(@"calloutAccessoryControlTapped"); 

    /// detail page opening but beeid not passing 

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





    BeepsDetail *objCont = [[BeepsDetail alloc] initWithNibName:@"BeepsDetail" bundle:nil]; 
    objCont.mId = myAnnot.beepid; 
    objCont.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentModalViewController: objCont animated: YES]; 

    //[paramDic setValue:[mObject.mDic objectForKey:@"beepid"] forKey:@"beepid"]; 
    [objCont release]; 


} 
+0

오류는 NSMutableDictionary * dic = [placeName objectAtIndex : MKAnnotationView.annotion]에 있습니다. 주석을 달려면 – IphoneBites

답변

2

라인

MKAnnotationView클래스 때문에
NSMutableDictionary *dic = [placeName objectAtIndex:MKAnnotationView.annotion]; 

오류를 제공하고 더 annotation 방법은 거기에 없다 수업. 어떤 viewMKAnnotationView의 인스턴스가 있기 때문에 당신이 사용하는 것입니다 선택한 것입니다. 또한 annotion의 철자가 잘못되었습니다.

그러나 view.annotation이 주석 객체이고 placeName 배열의 정수 인덱스가 아니기 때문에 여전히 작동하지 않습니다.

오른쪽 화살표를 클릭하면 설명 선에서 올바른 설명 선 액세서리 버튼을 의미하며 주석 자체는 의미하지 않는다고합니다. 이 경우 didSelectAnnotationView 대신 calloutAccessoryControlTapped 대리자 메서드를 사용하여 선택을 감지해야합니다.

두 경우 모두 먼저 view.annotation을 사용하여 주석 객체에 액세스 한 다음 주석 객체의 일부 속성 (사용자 정의 가능)을 사용하여 세부 정보 데이터를 결정합니다.

당신이 (대신 MKPointAnnotation를 사용하는) 사용자 정의 MKAnnotation 클래스를 만든 경우 예를 들어, 주석을 만들 때 그것을 설정, 그것에 beepId 속성을 추가 할 수 있고 위임 방법이처럼 검색 할 수 있습니다 :

MyAnnotationClass *myAnnot = (MyAnnotationClass *)view.annotation; 
objCont.mId = myAnnot.beepid; 
+0

위 코드를 업데이트했습니다. – IphoneBites

관련 문제