Возникли проблемы с разделами в UITableView - PullRequest
0 голосов
/ 03 февраля 2012

У меня есть следующий код в моем методе поиска, который обновляет представление таблицы.

for (int x = 0; x < [array count]; x++) {
//network stuff here
self.searchedReservations = [aSearchObjectType objectsFromServerDictionaries:aResultsArray];
[self.aTableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];
}

Каждый объект в массиве представляет раздел в моей таблице, в большинстве случаев это будет 4, поэтому 4 раздела,

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

Вот код, который загружает ячейки.Мне не хватает логики, которая отображает данные в правой части таблицы.

MyClass *object = [self.searchedReservations objectAtIndex:iIndexPath.row];
cell.textLabel.text = object.customerFullName;

1 Ответ

1 голос
/ 03 февраля 2012

Полагаю, у вас есть код ниже в вашем методе cellForRowAtIndexPath:

MyClass *object = [self.searchedReservations objectAtIndex:iIndexPath.row];
cell.textLabel.text = object.customerFullName;

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

Если вы находитесь в секции 0, загружая ячейку 0, этот код выше не учитывает номер секции, а только номер строки - поэтому он загружается:

[self.searchedReservations objectAtIndex:0] 

для заполнения ячейки.

Когда вы находитесь в секции 1, загружая ячейку 0 в секции 1, вы получаете точно такое же значение, потому что вы просто используете номер строки. то есть. вы все еще загружаете

[self.searchedReservations objectAtIndex:0]

Вы можете подумать, что вы изменяете значение объекта 'seekReservations' между загрузками каждого раздела (это то, что вы пытаетесь сделать в цикле выше), но я не уверен, что это работает (так как код, который заполняет searchReservation, похоже, не делает ничего особенного в каждом счетчике цикла). Кроме того, при первой загрузке таблицы она все равно будет проходить по всем строкам во всех разделах.

Я думаю, вам нужно либо использовать поле indexPath.section, а также поле indexPath.row во время заполнения ячейки, чтобы убедиться, что вы устанавливаете соответствующую строку в соответствующем разделе.

Кроме того, используйте отладчик, чтобы увидеть, что происходит в вашем методе cellForRowAtIndexPath и в вашем цикле, и убедитесь, что вы получаете / используете разные объекты searchReservations для каждого приращения цикла и что это совпадает с объектом searchReservations. в методе cellForRowAtIndexPath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...