Таблица, с которой у меня проблемы, выталкивается из другого контроллера таблицы, и в этой таблице есть только один раздел, и я использую пользовательские ячейки.Вот код для numberOfRowsInSection:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSInteger numberOfRows;
if ([imagesArray count] == 0) {
numberOfRows = 0;
}
else {
if ([imagesArray count] % 4 == 0) {
numberOfRows = [imagesArray count] / 4;
}
else {
numberOfRows = ([imagesArray count] / 4) + 1;
}
}
NSLog(@"numberOfRowsInSection: %d", numberOfRows);
return numberOfRows;
}
Журнал здесь всегда печатает ожидаемое количество строк.Все идет нормально.Теперь давайте посмотрим на cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"cellForRowAtIndexPath: %@", [indexPath description]);
ImageTableCell *cell = (ImageTableCell *)[tableView dequeueReusableCellWithIdentifier:@"4ImagesCell"];
if (cell == nil) {
cell = [[[ImageTableCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"4ImagesCell"] autorelease];
}
return cell;
}
Консоль здесь «всегда» печатает следующее:
cellForRowAtIndexPath: <NSIndexPath 0x5a4f2c0> 2 indexes [0, 0]
cellForRowAtIndexPath: <NSIndexPath 0x5a4f2c0> 2 indexes [0, 1]
cellForRowAtIndexPath: <NSIndexPath 0x5a4f2c0> 2 indexes [0, 2]
cellForRowAtIndexPath: <NSIndexPath 0x5a4f2c0> 2 indexes [0, 3]
cellForRowAtIndexPath: <NSIndexPath 0x5a4f2c0> 2 indexes [0, 4]
Независимо от того, какое значение возвращает числоOfRowsInSection, является ли оноНоль или 100, таблица всегда запрашивает 5 строк!Я даже пытался вернуть статическое число в numberOfRowsInSection вместо текущих условий, но это не имеет значения для действительного числа ячеек!
Меня сводит с ума то, что таблица достигает метода numberOfRowsInSection перед переходом к cellForRowAtIndexPath!
Единственное, что я могу думать о том, что это может быть вызвано тем, что этот контроллер таблицы выталкивается из другого UITableViewController, но метод numberOfRowsInSection предыдущей таблицы никогда не проверяется, пока я в этой таблице, я даже пытался изменитьколичество строк в родительской таблице без везения.
Если какой-либо информации не хватает, пожалуйста, дайте мне знать.Проект довольно сложный, и я не могу придумать какую-либо другую соответствующую информацию для этой проблемы.