Давайте рассмотрим имя класса, который указан выше в вашем коде: annotation.m
По вашему мнению, контроллер
annotation *annotationObject=[[annotation alloc]init];
annotationObject.title=@"Some title";
annotationObject.subTitle=@"Some subtitle";
annotationObject.coordinate=someCoordinate;
[mapView addAnnotation:annotationObject];
[annotationObject release];
Поместите приведенный выше код в цикл для добавления множества аннотаций или поместите объекты аннотаций в массив и используйте addAnnotations для mapView.
В viewForAnnotation добавьте дополнительную кнопку к аннотации
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
MKAnnotationView *annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Pin"] autorelease];
annotationView.canShowCallout = YES;
UIButton *annotationButton=[UIButton buttonWithType:UIButtonTypeDetailDisclosure];
annotationView.rightCalloutAccessoryView = annotationButton;
return annotationView;
}
Когда пользователь выбирает вспомогательную кнопку, этот делегат будет называться
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
//Get the specific annotation by the view.annotation.title
//Go to another view that has details
}