Как получить cell.textLabel.text из выбранной ячейки в DetailViewController? - PullRequest
0 голосов
/ 22 февраля 2010

У меня есть UITableView с несколькими записями, и они разделены на несколько разделов. Если я нажимаю на одну из ячеек, происходит доступ к DetailViewController. В этом DetailViewController я хочу использовать данные из выбранной ячейки (cell.textLabel и cell.detailTextLabel), но я не могу получить к ним доступ. Есть ли возможность решить проблему, чтобы я мог получить доступ к textLabels из выбранных ячеек с помощью DetailViewController?

Ответы [ 2 ]

2 голосов
/ 22 февраля 2010

Один из способов - добавить свойства в DetailViewController для двух текстовых значений. Затем в didSelectRowAtIndexPath сделайте что-то вроде этого:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

    //create your DetailViewController here
    UIViewController *detailViewController = ...

    //set the properties...        
    detailViewController.cellText = cell.textLabel.text;
    detailViewController.cellDetailText = cell.detailTextLabel.text;

    //push the detailViewController here

    [detailViewController release];
}
0 голосов
/ 22 февраля 2010

Инициализируйте DetailViewController содержимым ячейки.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
    DetailViewController *detailViewController = [[[DetailViewController alloc] initWithText:cell.textLabel.text] autorelease];
    // push
}

Вместо того, чтобы ребенок читал от своего родителя, гораздо понятнее, чтобы родитель предоставил информацию непосредственно своему ребенку.

...