Добавление пин-кода аннотации в виде карты в зависимости от выбранной ячейки - PullRequest
0 голосов
/ 23 марта 2012

У меня есть контроллер табличного представления, затем у него есть подкласс DetailViewController, содержимое которого изменяется в зависимости от выбранной ячейки, но при переходе от моего DetailViewController к MapView я пытаюсь использовать тот же метод, который использовал для получения текста на DetailViewController но это не работает, независимо от того, что я делаю. Я застрял с этим больше как 3 недели сейчас: (

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{ if (! self.detailViewController) { self.detailViewController = [[DetailViewController alloc] initWithNibName: @ "DetailViewController" bundle: nil];

[self.navigationController pushViewController:self.detailViewController animated:YES];
[self.detailViewController changeProductText:[teksti objectAtIndex:indexPath.row]];
[self.detailViewController changeProductText1:[adrese objectAtIndex:indexPath.row]];
[self.detailViewController changeProductText2:[laimigastunda objectAtIndex:indexPath.row]];
[self.detailViewController changeImage:[imageChange objectAtIndex:indexPath.row]];



}

} Неважно, что я здесь изменяю, это не сработает.

1 Ответ

0 голосов
/ 23 марта 2012

Из кода, который вы показываете, видно, что вы не передаете объект данных вашему detailViewController, а непосредственно устанавливаете значения.

Это не способ сделать это и, вероятно, причина, по которой у вас возникают проблемы. Вам нужно понять концепцию MVC и вернуться к ней.

По крайней мере, вы должны 1. построить словарь в первом виде с ключами @ "teksti", @ "adrese", @ "longitude", @latitude ". 2. Создайте свойство в DetailViewController для хранения словаря. 3. обновить значения, отображаемые при отображении DetailViewController

Так что, когда вы нажимаете кнопку карты, вы можете затем нажать представление, содержащее mapView, и установить карту на широту и долготу, которые у вас есть.

Так будет:

  NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:[teksti objectAtIndex:indexPath.row], @"teksti", [adrese objectAtIndex:indexPath.row], @"adrese", [latitude objectAtIndex:indexPath.row], @"latitude", [longitudes objectAtIndex:indexPath.row], @"longitude", nil];
  [detailViewController setDict:dict];

и в DetailViewController.m:

  - (void)viewWillAppear:(BOOL)animated{
  [self changeProductText:[dict objectForKey:@"teksti"]];
  .... And so on
  }

Ваш код будет полезен для предоставления вам более подробной информации.

...