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

发布于 2024-10-12 03:57:55 字数 308 浏览 8 评论 0原文

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

我正在使用 Core Data 和一个简单的数据库。我尝试过使用controllerdidchangecontent、地图视图控制器将显示方法等,但我的主要问题是识别哪个对象已添加/更新/删除以及哪个是相应的标注/选定的引脚。

任何帮助表示赞赏...

I have a simple maps app with multiple pins on a map view. My intention is to tap a pin, show a callout with an accessory view, push to a Detail View Controller where you can edit that pin/locations details. This all works fine, but once i pop the Detail View Controller the callout on the map view is still there, which i want, but it still has the old uneditied values. How can i refresh/update the callout view once the Detail View Controller is popped?

I am using Core Data with a simple database. I have tried using controllerdidchangecontent, Map View Controller Will Display methods etc but my main problem is identifying which object has been added/updated/deleted and which is the corresponding callout/selected pin.

Any help appreciated...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怪我闹别瞎闹 2024-10-19 03:57:55

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

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

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

Not sure if you had find your answer but the way to do it is to extend MKAnnotation class and creating custom annotation and passing them while creating placemarks. Later you can get them from MKAnnotationView's annotation property.

See a good implementation here

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

寂寞花火° 2024-10-19 03:57:55

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

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

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

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

The only way I could find to update the callout info was to mess directly with the subviews of the callout.

The callout view is the first subview of the annotation view.

In the following example, I update the subtitle.The title label is the 6th and the subtitle is the 7th subview of the callout:

if (myAnnotationView.subviews.count > 0)
    ((UILabel*)[((UIView*)[myAnnotationView.subviews objectAtIndex:0]).subviews objectAtIndex:7]).text = @"Some example";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文