【发布时间】:2012-08-24 18:38:56
【问题描述】:
编辑问题:
我正在尝试获取在地图视图中创建的注释(带有标题/副标题)并将我的地图上的所有注释推送到显示带有标题/副标题的列表的表格视图。
我有一个 RegionAnnotation.h/.m NSObject 文件,它可以进行反向地理编码,我需要填充 MapViewController 上的引脚。这工作得很好。我长按创建一个图钉,然后显示标题和副标题,反向地理编码工作。
现在我想将 pin 数据推送到 tableview 列表。我尝试在cellForRowAtIndexPath 中调用区域注释信息,并使用UITableViewCellStyleSubtitle 来获取单元格的正确格式以填充标题和副标题。但是,当我调用以下命令时:
if (cell == nil){
NSLog(@"if cell");
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
CLPlacemark *pins = [self.annotations objectAtIndex:indexPath.row];
RegionAnnotation *annotation = [[RegionAnnotation alloc] initWithLocationIdentifier:(NSString *)pins];
cell.textLabel.text = annotation.title;
我只得到标题,在这种情况下是“位置提醒”,但是,作为地址的字幕信息不会填充表格。只显示文本“副标题”。
如何使用标题和副标题信息填充单元格。我已经为此工作了一个多月,似乎无法找到解决方案。请帮忙。
【问题讨论】:
-
在 viewDidLoad 中,
[self.annotations addObjectsFromArray:_annotations];行没有意义,因为 _annotations 是 annotations 属性后面的 ivar,所以它们基本上指向同一个东西。如果表格应该显示引脚,为什么 numberOfRowsInSection 返回regions.count?区域与注释有什么关系?在 cellForRowAtIndexPath 中,为什么要新建一个 RegionAnnotation 对象? -
您对 viewDidLoad 的看法是正确的,我打算删除它,谢谢。我有一个名为 RegionAnnotation 的 .m 文件,其中包含调用信息的代码。我将编辑原件以显示。
-
好的,但是如果您已经在地图视图控制器上拥有注释,为什么需要在 cellForRowAtIndexPath 中创建它们的新实例?地图VC上的注释不是已经设置了标题和副标题吗?仍然不清楚为什么 PinListVC 中有区域和注释。 map VC如何创建并显示PinListVC?
-
是,MapView选择了PIN时显示标题和字幕。我只是不知道如何让这些信息显示为表格上的列表。我想既然我正在调用 RegionAnnotation 文件中的信息以显示在地图视图上,那么我需要在 pinlistVC 上调用相同的信息。这就是我卡住的地方。我不应该创建新实例,只需传递信息。但是,我不知道该怎么做。如果我从 viewDidLoad 中删除区域计数,那么我的 tableview 是空白的。
-
我删除了 [self.annotations addObjectsFromArray:_annotations];仍然卡住。还有其他建议吗?
标签: ios uitableview mkannotation