2012-06-11 67 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]