Xcode MapView selectAnnotation - 但是哪一个?

时间:2012-01-28 06:19:57

标签: objective-c xcode annotations android-mapview

将注释添加到地图中

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”必须是什么?

1 个答案:

答案 0 :(得分:0)

'xxx'应该是指向注释对象的指针。您正在创建与数据分开的注释。这很好,但这意味着你必须做一些额外的工作来跟踪注释以及它们如何与餐馆相对应。也许更典型的做法是让您的餐厅类采用MKMapAnnotation。然后,当用户选择餐桌中的餐馆时,您只需要弄清楚他们选择了哪家餐馆。然后你可以:

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

如果您想继续将注释分开,可以将它们存储在密钥为餐馆的字典中,或者可能存储与每个餐馆对应的唯一标识符:

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

或:

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