У меня есть MapView с кнопкой на панели инструментов, которая при нажатии добавляет наложения к MapView. Я хотел бы, чтобы кнопка (IBAction) проверяла, есть ли уже наложения на карте, и если есть удаления, если нет, добавьте их.
Мой текущий код, который добавляет наложения, выглядит следующим образом:
- (IBAction)waterWaysAction:(id)sender
{
NSLog(@"WaterWays pushed");
if ([mapView overlays]) {
[mapView removeOverlays:[mapView overlays]];
NSLog(@"WaterWays removed");
} else {
// ******* adds the overlays for the waterways **********
// inner harbor
CLLocationCoordinate2D innerHarborPoints[13] = {
CLLocationCoordinate2DMake(43.02313691051886, -87.90539558418189),
CLLocationCoordinate2DMake(43.0213450482963, -87.90596442438722),
CLLocationCoordinate2DMake(43.01721422337822, -87.90249007832719),
CLLocationCoordinate2DMake(43.0141641230024, -87.90402523886414),
CLLocationCoordinate2DMake(43.00858391833174, -87.8971780500095),
CLLocationCoordinate2DMake(43.016711699807, -87.90156448365555),
CLLocationCoordinate2DMake(43.01692320142091, -87.90093306118753),
CLLocationCoordinate2DMake(43.02204743639911, -87.90385746629964),
CLLocationCoordinate2DMake(43.02400128319255, -87.90186558765494),
CLLocationCoordinate2DMake(43.02441284233703, -87.89897827382163),
CLLocationCoordinate2DMake(43.02564995691736, -87.89925323299293),
CLLocationCoordinate2DMake(43.02549123239004, -87.90378517804325),
CLLocationCoordinate2DMake(43.02313691051886, -87.90539558418189)};
MKPolygon *innerHarborPolygon = [MKPolygon polygonWithCoordinates:innerHarborPoints count:13];
innerHarborPolygon.title = @"Inner Harbor";
[mapView addOverlay:innerHarborPolygon];
NSLog(@"WaterWays added");
}
}
Этот код работает один раз, чтобы добавить оверлей, и один раз, чтобы удалить его. После этого (после просмотра выходных данных журнала) кажется, что функция (кнопка) думает, что MapView все еще имеет наложения, и, следовательно, ей необходимо их удалять (даже если их больше нет).
Заранее спасибо за любую помощь!