2011-06-27 14 views
1

私はアイテムリストテーブルを持っています。テーブルの行を選択すると、より多くの情報が表示され、目印が付いた地図が表示されます。 使用するコードは以下の通りです:mkmapviewから目印を削除する

MKCoordinateRegion region; 
CLLocationCoordinate2D coordinate = {lat,longt}; 
region.center.latitude = coordinate.latitude; 
region.center.longitude = coordinate.longitude; 
region.span.latitudeDelta = 0.3; 
region.span.longitudeDelta = 0.3; 
[self.mapView setRegion:region animated:YES]; 

MKPlacemark *mPlacemark = [[[MKPlacemark alloc] initWithCoordinate:coordinate addressDictionary:nil] autorelease]; 
[mapView addAnnotation:mPlacemark]; 
[mPlacemark release]; 

問題は、私は別の項目を選択したときに、私のマップでは、以前に選択した項目は、新しい目印と以前にそれらを表示した後ということです。以前の目印をマップから削除するにはどうすればよいですか?

答えて

2

以前に追加した目印を削除してみます。

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

同様: は、あなたのクラスのプロパティとしてretainmPreviousPlacemarkを宣言します。

[mapView removeAnnotation:mPreviousPlacemark]; 
[mapView addAnnotation:mPlacemark]; 
self.mPreviousPlacemark = mPlacemark; 
[mPlacemark release]; 
+0

これで2回目の新しいアイテムを選択すると、アプリケーションがクラッシュしますが、コンソールにエラーは表示されません。 – davideagostini

+0

@ reb2awrl:表示することができますか?** h **で 'mPreviousPlacemark'をどのように宣言しましたか?あなたの**。m **クラスの** @ synthesize mPreviousPlacemark **のように、 '' @ synthesisize'を 'mPreviousPlacemark'で使ったことがありますか? – Jhaliya

+0

はい私は.hとmファイルでmPreviousPlacemarkを宣言しました。私は@synthesize mPreviousPlacemarkを使用しました。 viewWillAppearの後、私はあなたのコードで私の前のコードを変更しました。 – davideagostini

関連する問題