Я надеюсь и ожидаю, что вы будете использовать один и тот же тип контроллера представления для каждой остановки, но настроенный на разные данные.Когда я сделал что-то подобное, мои аннотации были объектами данных для каждой точки интереса на карте, поэтому я сделал бы это:
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
StopInfo *stopInfo = view.annotation;
StopInfoDetailController *detailController = [[StopInfoDetailController alloc] initWithNibName:nil bundle:nil];
detailController.stopInfo = stopInfo;
[mapView.navigationController pushViewController:detailController animated:YES];
[detailController release];
}
В этом случае StopInfo будет классоманнотаций объектов.Он должен содержать информацию, необходимую для выполнения подробного контроллера: имя файла MP3, местоположение остановки, имя файла остановки изображения, описание остановки и т. Д.
Обратите внимание, что на самом деле вы можете иметь несколько различных видов аннотаций натвоя картаВозможно, некоторые из них являются остановками в вашей пешеходной экскурсии, в то время как другие представляют интерес для тех, кто не участвует в туре, продавцы продуктов питания, ванные комнаты и т. Д. В этом случае вы можете использовать разные контроллеры представления для каждого типа аннотации, поэтому вам следуетпосмотрите на объект аннотации, чтобы выяснить, какой тип контроллера представления создать.