TableView: как выбрать значение другой строки из процедуры didSelectRowAtIndexPath


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

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

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

3 2

3 ответа:

Если вы создадите свою собственную переменную 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];

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

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

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