在从地图视图中推送的View Controller中输入的详细信息后更新AnnotationView标注

时间:2011-01-16 16:32:21

标签: android-mapview callouts

我有一个简单的地图应用程序,在地图视图上有多个图钉。我的目的是点击一个引脚,显示带有附件视图的标注,推送到详细视图控制器,您可以在其中编辑该引脚/位置详细信息。这一切都很好,但是一旦我弹出详细视图控制器,地图视图上的标注仍然存在,我想要它,但它仍然具有旧的未经编辑的值。弹出详细信息视图控制器后,如何刷新/更新标注视图?

我正在使用Core Data和一个简单的数据库。我尝试过使用controllerdidchangecontent,Map View Controller Will Display方法等,但我的主要问题是确定哪个对象已被添加/更新/删除,哪个是相应的callout / selected pin。

任何帮助表示赞赏...

2 个答案:

答案 0 :(得分:0)

不确定您是否找到了答案,但是这样做的方法是扩展MKAnnotation类并创建自定义注释并在创建地标时传递它们。稍后您可以从MKAnnotationView的注释属性中获取它们。

在这里看到一个很好的实现

http://www.slideshare.net/360conferences/getting-oriented-with-mapkit-everything-you-need-to-get-started-with-the-new-mapping-framework

答案 1 :(得分:0)

我能找到更新标注信息的唯一方法是直接弄乱标注的子视图。

标注视图是注释视图的第一个子视图。

在以下示例中,我更新了字幕。标题标签是第6个,副标题是标注的第7个子视图:

if (myAnnotationView.subviews.count > 0)
    ((UILabel*)[((UIView*)[myAnnotationView.subviews objectAtIndex:0]).subviews objectAtIndex:7]).text = @"Some example";