带有数据库内容ID的iPhone MKAnnotation

时间:2011-03-03 21:53:32

标签: 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;  

}

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

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

[mapView addAnnotations:markers]; //其中markers是一个标题数组,副标题是id

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

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

您所要做的就是为您的注释类提供适当的属性来存储您的ID。传递注释时,可以通过转换到注释类来从中访问注释。在其他委托方法中传递注释视图时,可以通过其annotation属性访问注释。