0

在我的 mapview 项目中,我已将自定义注释的 NSMutableArray 传递给表视图。在 tha mapview .m 代码中:

MyLocation *nota =[[MyLocation alloc] initWithName:name time:horario];        

            [_mapView addAnnotation:nota];   //add location to map

            [mapViewAnnotations addObject:nota];  //copy "nota" to the new array...

    }
    TablaViewController  *tablaController =[[TablaViewController alloc]initWithNibName:@"TablaViewController" bundle:nil];
    tablaController.locationFromMap = mapViewAnnotations;    //... then I pass array to table

在表视图中:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.navigationItem.title = @"Locations";

    listOfItems = [[NSMutableArray alloc] init];

    for (int i = 0; i < [locationFromMap count]; i++){

        MyLocation *location = [locationFromMap objectAtIndex:i];
        //Add items
        [listOfItems addObject:location.name];
        NSLog(@" list count : %d",[listOfItems count]);
    }


}

其中 locationFromMap 是一个自定义位置的 NSmtable 数组,具有一些属性,如名称、子名等。

使用 :

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    NSString *cellValue = [listOfItems objectAtIndex:indexPath.row];
    cell.textLabel.text  = cellValue;
    return cell;
}

位置“名称”正确显示在表中。我的问题是,当点击相关行时,如何才能回到地图上,重点关注具体位置。Perarps 我的方法不对?

提前致谢。

4

1 回答 1

1

所以:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    MyLocation *loc = [locationFromMap objectAtIndex:indexPath.row];
    MKCoordinateRegion r = MKCoordinateRegionMake(loc.coordinate, MKCoordinateSpanMake(0.005, 0.005));
    [self.mapView setRegion:r animated:YES];
}  

(内联输入,但类似这样)

于 2013-04-23T07:58:29.313 回答