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