Как отобразить местоположение из таблицы на карте на следующем экране? - PullRequest
0 голосов
/ 30 декабря 2010

Я передаю NSArray, который содержит объекты на экран, где свойства объекта отображаются в таблице.Каждый из этих объектов содержит свойство широты и свойство долготы.Я хотел бы реализовать функциональность, где пользователь выбирает ячейку (где каждая ячейка представляет объект из NSArray), а затем пользователь переносится на другой экран, где он может видеть аннотацию, представляющую местоположение объекта на карте,и аннотация, представляющая пользователя.Как мне это сделать?Вот мой соответствующий код из моего класса RootViewController.m:

SecondViewController *controller = [[SecondViewController alloc] initWithNibName:@"SecondView" bundle:[NSBundle mainBundle]];
        self.secondViewController = controller;
        [controller release];

        self.secondViewController.locationList = sortedLocations;

        [[self navigationController] pushViewController:controller animated:YES];

Мой соответствующий код в SecondViewController.m выглядит следующим образом:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"locationcell";

LocationTableViewCell *cell = (LocationTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[LocationTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}

Location *location = [locationList objectAtIndex:indexPath.row];
cell.locationName.text = location.name; 
cell.locationAddress.text = location.address;
cell.locationDistance.text = location.distance;

return cell;
}

Обратите внимание, что видимые свойстваимя, адрес и расстояние, но объект местоположения также содержит свойства широты и долготы.Я знаю, что должен создать новый экран под названием MapViewController.Но, как я уже сказал, я действительно не уверен, куда идти от таблицы на экране, к карте, которая показывает объект местоположения и пользователя.

Ответы [ 2 ]

0 голосов
/ 30 декабря 2010

создать объект MapViewController в контроллере secondview

напишите приведенный ниже код в свой контроллер второго вида

  • (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {

    MapViewController * mapView = [[MapViewController alloc] initWithNibName: @ «MapViewController» bundle: [NSBundle mainBundle]];

    self. mapView = controller;
    [mapView release];
    
    
    self.mapView.latit = location.latitude;
    self.mapView.longi = location.longitude;
    [[self navigationController] pushViewController:controller animated:YES];
    

    }

создать 2 двойные переменные с именем latit и longi в MapViewController для хранения широты и долготы

0 голосов
/ 30 декабря 2010

Создайте новый ViewController с MapView и передайте значение широты и долготы новому ViewController.

Предположим, что вы создали контроллер представления как MyLocationMapViewController.

В SecondViewController.m реализовать следующее

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    Location *location = [locationList objectAtIndex:indexPath.row];
    [self.navigationController pushViewController:[[MyLocationMapViewController alloc] initWithLocation:location] animated:YES];
}

в MyLocationMapViewController.h

  • (id) initWithLocation: (Местоположение *) местоположение;

в MyLocationMapViewController.m

  • (id) initWithLocation: (Местоположение *) location { * locationObj = местоположение;

}

Теперь вы можете использовать locationObj для получения значений карты и отображения координат в MapView.

...