带有数据库内容 ID 的 iPhone MKAnnotation

标签 iphone mkmapview mkannotation mkannotationview

我正在尝试使用 MKMap API 并集成数据库表 ID,以便我可以单击详细信息披露按钮将用户发送到包含更多信息的另一个页面。我在 Apple 网站上浏览了 MKMapKit,寻找一些属性或方法来帮助我解决这个问题,并且浏览了一些教程但没有答案。

我尝试将 id 附加到字幕上下文中,以便我可以在 MKAnnotationView 中检索它,我在其中创建 MKPinAnnotationView 并将按钮添加到 rightCalloutAccessoryView。它出错并且不想工作。

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{  

MKPinAnnotationView *annView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"mkpin"];  
annView.animatesDrop = YES;  
annView.canShowCallout = YES;  

UIButton *disclosureButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];  
annView.rightCalloutAccessoryView = disclosureButton;  

return annView;  

}

我将这种技术用于 map 上的单个图钉,它似乎有效,但我不需要 ID...

当我尝试获取注释的副标题时,它会终止应用程序。我知道(id)注释是一个整数,但我不知道如何操作这些信息。我认为上面的这个函数是在我的代码之后调用的:

[mapView addAnnotations:markers];//其中标记是标题数组,副标题又名 id

任何帮助将不胜感激。

最佳答案

subtitle 属性用于副标题,而不是数据库 ID。以这种方式滥用它不会有任何好处。即使您可以让它发挥作用,这也是一种可怕的方法。

您所要做的就是为您的注释类提供一个适当的属性来存储您的 id。当您传递注释时,您可以通过转换为注释类来访问它。当您在其他委托(delegate)方法中传递注释 View 时,您可以通过其 annotation 属性访问该注释。

关于带有数据库内容 ID 的 iPhone MKAnnotation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5187052/

相关文章:

ios - 需要在 IOS 的 mapview 上添加一个固定的叠加层

IOS Swift 从谷歌地图中删除首都

iphone - 如何修改 GLCameraRipple 示例以在后台线程上处理?

iphone - NSDirectoryEnumerator 和子文件夹

iphone - 为什么 MKMapView 显示不正确的半径

ios - 我应该在哪里将 MKPointAnnotation 添加到 MKMapView?

iphone - NSPredicate 用于一对多关系

iphone - 在 Apple map 上绘制路线 (iOS 6+)

ios8 - 自定义 iOS8 标注气泡 (Swift)

ios - 在 map 注释 View 上设置标题和副标题