【问题标题】:Loading Accessory callout view for mkannotationview加载 mkannotationview 的附件标注视图
【发布时间】:2009-09-02 07:26:03
【问题描述】:
我有一个地图注释视图,其中包含一个 rightcallout 按钮,该按钮加载一个 UIViewController 类的附件视图。我正在使用可重复使用的注释,但我想知道如何将更新的信息传递给我的 UIViewController 类。假设我有 2 个字符串值在我的视图中映射到 2 个 UILabel。在初始附件视图已作为可重用视图加载到内存后,如何更新这些值?
任何帮助将不胜感激。
【问题讨论】:
标签:
objective-c
iphone
annotations
mapkit
【解决方案1】:
您需要在获取更新的对象中维护对 UILabel 的引用,然后使用 setTitle:(我认为)来更新标签。
【解决方案2】:
在您的注释子类中,您需要重写 setTitle 方法以将更改发送到您的子类所持有的 UIViewController 类的实例。或者,您可以设置注释子类以接收通知(来自 NSNotificationCenter),并在收到通知后更新 UIViewController 类的标题和实例。
如果您不熟悉 NSNotifications,那么这里有一个快速参考。我用这些来更新我的注释。
NSNotification Example
【解决方案3】:
尝试使用 MKMapViewDelegate 方法:
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control;
当用户点击注释视图的一个附属按钮时调用此方法。假设您的 MKMapViewDelegate 也是可以访问您的附件视图的 UIViewController。