我尝试使用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
非常感谢任何帮助。
答案 0 :(得分:2)
subtitle
属性用于字幕,而不是数据库ID。以这种方式滥用它不会有任何好处。即使你能让它发挥作用,这也是一种可怕的方法。
您所要做的就是为您的注释类提供适当的属性来存储您的ID。传递注释时,可以通过转换到注释类来从中访问注释。在其他委托方法中传递注释视图时,可以通过其annotation
属性访问注释。