【问题标题】:iPhone MKAnnotation with an ID for database content带有数据库内容 ID 的 iPhone MKAnnotation
【发布时间】:2011-03-03 21:53:32
【问题描述】:

我正在尝试使用 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]; //其中标记是标题数组,副标题又名id

任何帮助将不胜感激。

【问题讨论】:

  • “出错了”:错误是什么,在哪一行?标记数组是否包含符合 MKAnnotation 协议的对象?

标签: iphone mkmapview mkannotation mkannotationview


【解决方案1】:

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

你所要做的就是给你的注解类一个合适的属性来存储你的id。当您通过注解时,您可以通过转换为注解类从那里访问它。当您在其他委托方法中传递注解视图时,您可以通过其annotation 属性访问注解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    相关资源
    最近更新 更多