У меня есть selectedArray, определенный как свойство в моем файле, который содержит, какие ячейки были «проверены». При отображении ячейки я проверяю, находится ли текущее значение ячейки в selectedArray, и если это так, я отображаю UITableViewCellAccessoryCheckmark в качестве вспомогательного представления таблицы.
Единственная проблема заключается в том, что когда пользователь выполняет поиск через UITableView с помощью UISearchBar, я запрашиваю у таблицы reloadData после завершения поиска, и в методе numberofRows я вижу правильное количество объектов в selectedArray. Однако метод cellForRowatIndexPath по-прежнему отображает старые галочки, как будто selectedArray никогда не обновлялся.
Может кто-нибудь ПОЖАЛУЙСТА, помогите мне? Вот мой код -
NSArray *tempArray = [[NSArray alloc] init];
if(tableView == theTable) {
tempArray = [contactsArray objectAtIndex:indexPath.row];
} else {
tempArray = [searchfor_array objectAtIndex:indexPath.row];
}
NSString *cellValue = [tempArray objectAtIndex:0];
static NSString *CellIdentifier;
CellIdentifier = cellValue;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
UILabel *name = [[UILabel alloc] initWithFrame:CGRectMake(70, 30, 200, 20)];
name.text = [tempArray objectAtIndex:0];
name.backgroundColor = [UIColor clearColor];
[name setFont:[UIFont fontWithName:@"Helvetica-Bold" size:18]];
[cell.contentView addSubview:name];
[name release];
if([selectedArray containsObject:[tempArray objectAtIndex:0]]) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
}
return cell;
[cell release];
[tempArray release];
[cellValue release];