Ios 尝试获取正确的详图索引按钮以加载另一个视图控制器

Ios 尝试获取正确的详图索引按钮以加载另一个视图控制器,ios,xcode,ios4,Ios,Xcode,Ios4,我正在创建一个徒步旅行,并且正在使用mapkit。我有地图加载和使用自定义图标作为引脚和加载我的gps坐标从plist文件。我的呼叫工作正常。我的问题是,我希望右调出按钮在另一个屏幕上为每个站点加载不同的信息(站点图片和MP3)。我会为巡演的每个站点加载不同的视图控制器吗?如果是这样的话,我会向下面添加什么代码来创建名为Detailcontroller load的视图控制器 - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnot

我正在创建一个徒步旅行,并且正在使用mapkit。我有地图加载和使用自定义图标作为引脚和加载我的gps坐标从plist文件。我的呼叫工作正常。我的问题是,我希望右调出按钮在另一个屏幕上为每个站点加载不同的信息(站点图片和MP3)。我会为巡演的每个站点加载不同的视图控制器吗?如果是这样的话,我会向下面添加什么代码来创建名为Detailcontroller load的视图控制器

 - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
    NSLog(@"I've been tapped");
}

如果有人能给我指出正确的方向,我将不胜感激。我为我的措辞道歉,因为我对编码/应用程序开发非常陌生。

我希望并期望您在每个站点使用相同类型的视图控制器,但设置了不同的数据。当我做了类似的事情时,我的注释就是地图上每个感兴趣点的数据对象,所以我会这样做:

-(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文件名、停止位置、停止图像文件名、停止描述等


请注意,实际上地图上可能有几种不同类型的注释。可能有些是徒步旅行中的停靠点,而其他则是不在旅行中的兴趣点、食品供应商、浴室等。在这种情况下,您可能希望对每种类型的注释使用不同的视图控制器,因此,您需要查看annotation对象以确定要实例化哪种类型的视图控制器。

我是否创建了一个名为StopInfo的新类?在哪里添加Mp3文件名和图像文件名?我如何让它为每一站提取不同的信息?我是否创建了一个名为StopInfo的新类?你有这个的样品吗?抱歉问了这么多问题。那么,你的注释是什么?加载映射时,添加了一组实现MKAnnotation协议的对象,对吗?我猜您可能有一些对象集,其中每个对象都表示一个站点,带有站点名称和位置(因为这些是采用MKAnnotation时需要提供的内容)。无论是什么类,我都会在那里存储站点详细信息控制器所需的其他数据。这是你的StopInfo类(当然可以在上面的源代码中随意更改)。这篇文章解决了我的问题