2010-06-01 3 views
4

Может кто-нибудь мне помочь о том, как использовать методIPhone аннотаций булавки и кнопки

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control { 

.

Я пытаюсь рассказать аннотации в моем проекте, и я не могу понять, как это сделать. Каждый контакт имеет кнопку раскрытия, но я не могу понять, как программа будет знать, какая кнопка нажата.

ответ

2

Здесь вы можете использовать кучу различных приемов.

Например, вы могли бы держать Ивар для каждого annotationView и сделать это:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control { 
    if (view == myFirstAnnotationView) { 
    //do something 
    } 
    if (view == mySecondAnnotationView) { 
    //do something 
    } 
    if (view == myThirdAnnotationView) { 
    //do something 
    } 
} 

Или, вы можете использовать значение тега представления аннотаций.

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control { 
    if ([view.tag [email protected]"one"]) { 

    } 
    if ([view.tag [email protected]"two"]) { 

    } 
} 

Или вы можете подклассифицировать MKAnnotationView, чтобы добавить к нему какое-то поведение.

- (void)mapView:(MKMapView *)mapView annotationView:(MyMKAnnotationViewSubclass *)view calloutAccessoryControlTapped:(UIControl *)control { 
[view doAMethodIMadeWhenISubclassed]; 
} 

Нет, один из них не является полным решением, и было бы трудно представить одно без Бетер понимания приложения и дизайна, но то, что все они имеют в общем меняется annotationView, прежде чем добавить его к карте чтобы решить, что делать после того, как происходит обратный вызов делегата. Надеюсь, это приведет вас к правильному пути.

+0

Я понял, как перейти к подробному представлению, которое я создал, но мне было интересно, можете ли вы рассказать мне, как рассказать контакты отдельно, без каких-либо утверждений. Как я могу узнать, какая кнопка нажата ??? – alecnash

+0

Спасибо, честно говоря, мне было проще использовать IBAction для кнопок. – alecnash

Смежные вопросы