TableView: как выбрать значение другой строки из процедуры didSelectRowAtIndexPath - PullRequest
2 голосов
/ 22 октября 2011

Когда вызывается didSelectRowAtIndexPath, легко получить текстовое значение ячейки, используя: UITableViewCell * cell = [tableView cellForRowAtIndexPath: indexPath]; entryText = cell.textLabel.text;

Однако у меня проблема с выяснением того, как получить текстовое значение ячейки из другой строки одновременно. Например, если пользователь нажимает на строку 0, приведенное выше получит мне текст ячейки из строки 0. Но мне нужно получить текст ячейки из строки 1 и строки 2.

Как мне это сделать?

Ответы [ 3 ]

3 голосов
/ 22 октября 2011

Просто запросите данные у вашей модели. Вы никогда не должны использовать представления для хранения данных. Это особенно важно для ячеек табличного представления, где данные в представлении могут перемещаться от одного момента к другому, когда пользователь прокручивает ячейку за пределами экрана.

0 голосов
/ 22 октября 2011

Если вы создаете собственную переменную IndexPath для этих ячеек, например:

NSIndexPath *indexPath1 = [NSIndexPath indexPathForRow:indexPath.row+1 inSection:indexPath.section];
UITableViewCell *cell1 = [self.tableView cellForRowAtIndexPath:indexPath1];
NSString *cell1Text = [NSString stringWithString: cell1.textLabel.text];

NSIndexPath *indexPath2 = [NSIndexPath indexPathForRow:indexPath.row+2 inSection:indexPath.section];
UITableViewCell *cell2 = [self.tableView cellForRowAtIndexPath:indexPath2];
NSString *cell2Text = [NSString stringWithString: cell2.textLabel.text];

Это должно сработать.

0 голосов
/ 22 октября 2011

Это действительно зависит от того, как вы храните источник данных для таблицы. Если он находится в массиве, вы просто индексируете массив, чтобы получить значение.

...