Вы можете получить ячейку, используя [self.tableView cellForRowAtIndexPath:], а затем получить доступ к свойству textLabel.text, но обычно есть лучший способ.
Обычно вы заполняете таблицу на основе некоторого массива моделей, к которому имеет доступ ваш UITableViewController. Поэтому лучший способ справиться с этим в большинстве случаев состоит в том, чтобы взять номер строки выбранной ячейки и использовать ее для поиска связанных данных в вашей модели.
Например, допустим, у вашего контроллера есть массив Buddy
объектов, которые имеют свойство name
:
NSArray *buddies;
Вы заполняете этот массив, выполняя запрос или что-то еще. Затем в tableView:cellForRowAtIndexPath:
вы строите ячейку табличного представления на основе имени каждого собеседника:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BuddyCell"];
if (!cell) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BuddyCell"] autorelease];
}
cell.textLabel.text = [buddies objectAtIndex:indexPath.row];
return cell;
}
Теперь, когда пользователь выбирает строку, вы просто вытаскиваете соответствующий объект Buddy из вашего массива и что-то с ним делаете.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Buddy *myBuddy = [buddies objectAtIndex:indexPath.row];
NSLog (@"Buddy selected: %@", myBuddy.name);
}