Проблема didSelectRowAtIndex - PullRequest
1 голос
/ 09 мая 2011

У меня есть UITableView, в который я добавил разделы. При использовании didSelectRowAtIndex с indexPath.row я не получаю правильное значение. Допустим, я нахожусь в разделе 2, затем он начинает индекс строки (indexPath.row) снова с 0, и поэтому я получаю неправильный индекс.

скажем, первый массив имеет 4 имени: (0) 50 улиц, (1) яблоко, (2) мальчик и (3) кошка. когда вы выбираете кого-то одного, он загружает их правильный подробный вид на основе индекса (0,1,2,3). однако, когда вы переходите к поиску и набираете 'b', таблица сужается до просто (2) boy, который сейчас находится в строке 0. поэтому, когда вы выбираете 50 улиц, он загружает boy из исходного массива.

Может кто-нибудь сказать мне, как это исправить? Я понимаю, что можно получить индекс раздела по indexPath.section, но я не могу понять, как его использовать.

Ответы [ 2 ]

0 голосов
/ 09 мая 2011

Вы можете рассчитать «итоговую строку сверху», сложив счетные числа вышеупомянутых разделов, т.е. int j=0;for (int i=0;i<indexPath.section;i++) {j=j+[tableView numberOfRowsInSection:i];j=j+indexPath.Row;}

0 голосов
/ 09 мая 2011
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 0) // First section
{
//Do something
}
else if(indexPath.section == 1) // Second Section
{
//Do something 
}
}
...