Сначала добавьте аннотацию на карту и в методе viewForAnnotation
установите rightCalloutAccessoryView
для кнопки типа, скажем, UIButtonTypeDetailDisclosure (я не думаю, что синяя информационная кнопка доступна по умолчанию).
Нажатие кнопки вызовет метод делегата calloutAccessoryControlTapped
. В этом методе отмените выбор аннотации и покажите свой поповер. Например:
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
[mapView deselectAnnotation:view.annotation animated:YES];
YourContentViewController *ycvc = [[YourContentViewController alloc] init...
UIPopoverController *poc = [[UIPopoverController alloc] initWithContentViewController:ycvc];
[ycvc release];
//hold ref to popover in an ivar
self.annotationPopoverController = poc;
//size as needed
poc.popoverContentSize = CGSizeMake(320, 400);
//show the popover next to the annotation view (pin)
[poc presentPopoverFromRect:view.bounds inView:view
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[poc release];
}
YourContentViewController является подклассом UIViewController, который вы можете кодировать как любой другой контроллер представления. Приложение «Карты» выглядит так, словно в нем есть UITableView.