2012-06-11 36 views
0

我有一个MKMapView有很多注释。当我点击注释时,注释的联系人详细信息(ABPersonViewController)被推送。在这个班级中,我可以选择删除联系人。当联系人从地址簿中删除时,同时我也需要从地图视图中删除注释。如何从另一个类删除mapview注释

当点击删除按钮时,联系人将从地址簿中删除,并且ABPersonViewController类将从导航堆栈弹出。现在用户看到了mapview。但它应该没有被删除的注释(联系)。 我该怎么做。

+0

当你提供注解,必须基于从AddressBook.So一些数据,当您从通讯录中删除联系人,调用相同的方法来绘制标注您预先打电话来显示annotation.this时间将采取更新的数据并删除已删除联系人的注释。 –

+0

使用委托!这将解决您的问题。 –

回答

0

使用annotation属性从mapview中获取注释。然后通过标签列表进行迭代,以获得特定注释然后使用

- (void)removeAnnotation:(id <MKAnnotation>)annotation 

方法来删除注释。我希望它会照顾你的问题。

+0

此方法将在地图视图类中。我应该如何通过在'ABPersonViewController'类中点击按钮来触发它。 –

+0

为此,您可以创建一个委托来执行此操作,也可以使用NSNotificationCenter向前一个控制器发布通知,以便为您删除委托。 –

0

添加所有注释的可变数组以及与它对应的地址,如:

的NSMutableArray *阵列;

[数组添加对象:[NSDictionary dictionarywithobjectandkeys:@“your object and keys”];

现在,当用户删除地址后,其后的注释也将被删除。这应该做到这一点。

0

要删除所有注释,请使用下面的代码;

[mapView removeAnnotations:mapView.annotations]