2012-01-28 38 views
0

添加註釋到地圖這樣Xcode MapView selectAnnotation - 但是哪一個?

MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle:@"Title" andSubTitle:@"Sub Title" andCoordinate:location]; 
[mapView addAnnotation:newAnnotation]; 
[newAnnotation release]; 

左邊的表格顯示的餐館列表。當點擊一個「configureView」被調用時,地圖將縮放到該Annotation並打開Annotation的彈出窗口。

[mapView setRegion:region animated:YES]; 
[mapView setDelegate:self]; 
[self.mapView selectAnnotation:xxx animated:YES]; 

我如何確定具體的註解? 「xxx」必須是什麼?

回答

0

'xxx'應該是一個指向註釋對象的指針。您正在創建與數據分開的註釋。這很好,但這意味着你必須做一些額外的工作來跟蹤註釋以及它們如何對應餐館。也許更典型的做法是讓你的Restaurant類採用MKMapAnnotation。然後,當用戶在餐桌中選擇一家餐廳時,您只需要弄清楚他們選擇了哪家餐館。然後,你可以:

[self.mapView selectAnnotation:theSelectedRestaurant animated:YES]; 

如果你想繼續保持註釋分開,你可以將它們存儲在一個字典,其中鍵是餐廳,或者對應於每個餐廳的一些唯一標識符:

[self.mapView selectAnnotation:[annotationDict objectForKey:selectedRestaurant] animated:YES]; 

或:

[self.mapView selectAnnotation:[annotationDict objectForKey:selectedRestaurant.id] animated:YES]; 
+0

感謝。 「theSelectedRestaurant」是指Annotation的「title」參數?就像,當我使用[point setCoordinate:(location)]設置我的註釋時; [point setTitle:@「Some Name」]; [point setSubtitle:@「hello」];它應該與「[self.mapView selectAnnotation:@」Some Name「animated:YES];」 ? – user1104325 2012-01-28 09:13:15

+0

不,不是標題。它應該是一個指向實現MKAnnotation協議的對象的指針。正如我想說的,您可以在模型對象中執行此操作,以便您可以將它們直接添加到地圖中。 – Caleb 2012-01-28 13:58:28

相關問題