2012-10-01 3 views
0

클릭 한 문구 풍선을 식별하는 데 많은 어려움을 겪고 있습니다.어떤 설명 선이 클릭되었는지 어떻게 알 수 있습니까?

콜 아웃을 식별 할 수있는 방법이 몇 가지 있습니다. 여기에서 여러 가지 예제를 시도했지만 목표 C를 처음 접했기 때문에 사용법을 배울 수 없습니다.

내가 사용하려고했는데 다음 대답은하지만 난 주석 태그를 찾고 있어요하지만 심지어 나를 혼란 이잖아

How to track which annotation callout clicked

그들과 함께 혼란 스러워요. :(위의 링크에서 두 번째 대답에서 촬영

:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation 
{ 

if ([annotation isKindOfClass:[MKUserLocation class]]){ 
    return nil; 

    if(annotation.tag == 111) 
     //Do something 
    else 
     //Do some other thing 
} 

어떻게 내가 내가 함께 일하고 있어요 알 것 더 잘 이해 아마도 경우이 조각 작업의 첫 번째 부분. 또한

어떻게 콜 아웃은 그래서 각각 응용 프로그램의 응답을 할 수 있습니다를 클릭 할 때 태그를 검색에 대해 갈 것입니다.

+0

다음 예를 참조하십시오. http://stackoverflow.com/questions/4565197/how-to-find-which-annotation-send-showdetails, http://stackoverflow.com/questions/9876042/annotation-details-after -detail-disclosure-pressed, http://stackoverflow.com/questions/9462699/how-to-recognize-which-pin-was-tapped, http://stackoverflow.com/questions/9812471/mkpinannotationview-different-actions -in-different-pins, http://stackoverflow.com/questions/9797047/how-to-keep-data-associated-with-mkannotation-from-being-lost-after-a-callout-po – Anna

답변

0
당신이 그것을 식별 할 수 있도록 MKPinAnnotationView을 하위 클래스

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKPinAnnotationView *)view 

이 호출됩니다.

0

MKAnnotation을 확장하고 태그와 같은 속성을 만들고 고유 값이나 태그를 할당하고 mapview와 같은 클래스를 추가해야합니다.

Place* home = [[Place alloc] init] ; 
home.name = [dForMap valueForKey:@"shortaddress"]; 
home.latitude = [[dForMap valueForKey:@"latitude"]floatValue]; 
home.longitude = [[dForMap valueForKey:@"longitude"]floatValue]; 
home.description = [dForMap valueForKey:@"shortaddress"]; 
home.flierid = count; 
PlaceMark* from = [[PlaceMark alloc] initWithPlace:home] ; 
from.flierid = count; 
from.mapAnnotationType = MapAnnotationTypeProperty;  
[self addAnnotation:from]; 

설명 풍선을 클릭하면 didSelectAnnotationView 메소드에서 속성을 확인할 수 있습니다.

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view 
{ 
PlaceMark *a = (PlaceMark*)view.annotation; 
Place *test = a.place; 
int tag = test.flierid; 
} 

감사합니다.

관련 문제