如何让程序知道选择了哪个注释并能够访问它的属性?

Posted

技术标签:

【中文标题】如何让程序知道选择了哪个注释并能够访问它的属性?【英文标题】:how do I get the program to Know which annotation is selected and be able to access properties of it? 【发布时间】:2010-05-29 18:58:06 【问题描述】:

到目前为止,我的程序可以显示自定义注释视图的数据库。最终,我希望我的程序能够在单击注释气泡上的按钮后显示额外的信息。数据库中的每个元素都有一个唯一的条目编号,因此我认为将此条目编号添加为自定义注释的属性是个好主意。我遇到的问题是,在单击按钮并且程序切换到新视图后,我无法检索我选择的注释的条目号。 下面是将条目 Number 属性分配给注解的代码:

for (id mine in mines)
 
 workingCoordinate.latitude = [[mine latitudeInitial] doubleValue];
 workingCoordinate.longitude = [[mine longitudeInitial] doubleValue];
 iProspectAnnotation *tempMine = [[iProspectAnnotation alloc] initWithCoordinate:workingCoordinate];
 [tempMine setTitle:[mine mineName]];
 [tempMine setAnnotationEntryNumber:[mine entryNumber]];  
   
[mines dealloc];

当一个注解上的按钮被选中时,这是初始化新视图的代码:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control 
 
mineInformationController *controller = [[mineInformationController alloc] initWithNibName:@"mineInformationController" bundle:nil];

controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:controller animated:YES];
[controller release];
   

最后是我尝试从新视图中检索 entryNumber 属性,以便我可以将其与 mines 数据库进行比较并检索有关数组元素的更多信息。

iProspectFresno_LiteAppDelegate *appDelegate = (iProspectFresno_LiteAppDelegate *)[[UIApplication sharedApplication] delegate];
NSMutableArray* mines = [[NSMutableArray alloc] initWithArray:(NSMutableArray *)appDelegate.mines];
for(id mine in mines)

 if ([[mine entryNumber] isEqualToNumber: /*the entry Number of the selected annotation*/])
        
       /* display the information in the mine object */
       
  

那么我如何在这个新的视图控制器中访问这个条目号属性呢?

【问题讨论】:

【参考方案1】:

遇到同样的问题,您将不得不标记您的注释。看看这个,肯定会对你有所帮助:

http://www.everydayone.com/2009/08/mapkit_annotations/

【讨论】:

那么 Mapkit 框架的 UIViewController 公园呢?或者在这种情况下是 AnnotationView?

以上是关于如何让程序知道选择了哪个注释并能够访问它的属性?的主要内容,如果未能解决你的问题,请参考以下文章

我如何知道通过 jQuery 选择了哪个单选按钮?

我如何知道通过 jQuery 选择了哪个单选按钮?

反射是什么?原理?作用?

使用Java Annotations访问类属性的值

如何知道用户在 JavaFX TextArea 中选择了哪个文本字符串

如何让单元测试访问核心数据模型