Мое приложение состоит из 3 представлений (Вид 1 (Tableview1), Вид 2 (Tableview2), Вид 3 (DetailView)).
У меня есть настраиваемая ячейка таблицы, настроенная с подпредставлениями (imageViews и Labels)в моем представлении 2 (Tableview2).
Одним из этих подпредставлений является ImageView, и оно содержит изображение, если идентификатор ячейки находится в избранном массиве.Когда вы выбираете cellForRowAtIndexpath, вы перемещаетесь в новое представление (представление 3 (DetailView)), где вы можете нажать кнопку и сделать элемент избранным.Когда вы закрываете этот вид и возвращаетесь назад, изображение показывается, и все работает нормально.
Моя проблема возникает, когда я пытаюсь отменить выбор элемента в качестве избранного.Любимый символ по-прежнему отображается в табличном представлении, пока я не вернусь к представлению 1 (Tableview1).
Я попытался вызвать [myTableview reloadData] в представлении 2 в ViewWillAppear, но символ избранных все еще существует,Мое избранное сохранено и загружено с правильными значениями.
Массив обновляется в ViewWillAppear ...
В чем может быть проблема?
Соответствующий код: РЕДАКТИРОВАТЬ -Разместил весь соответствующий код из cellForRowAtIndexPath: все показывается правильно, но табличное представление не обновляется, если я удаляю изображение из пользовательской ячейки ... РЕДАКТИРОВАТЬ: Обновлено с помощью оператора else в цикле for, чтобы попытаться удалить избранные изображения изэлементы, которых больше нет в массиве избранного.РЕДАКТИРОВАНИЕ РЕДАКТИРОВАНИЕ РЕДАКТИРОВАТЬ: Работая сейчас, добавил в мой цикл for оператор break ... Обновлен код, чтобы он мог помочь другим ...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
CustomCell *cell = (CustomCell *)[myTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[CustomCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
[cell setAccessoryType: UITableViewCellAccessoryDisclosureIndicator];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *kategori = [prefs objectForKey:@"kategoriID"];
NSLog(@"KategoriID = %@", kategori);
rowArray = nil;
rowArray = [[NSMutableArray alloc] init];
for(int i=0; i < [listOfItems count]; i++) {
if([kategori isEqualToString:[listOfItems objectAtIndex:i]])
{
//Tilføjer ID
[rowArray addObject:[NSNumber numberWithInt:i-5]];
}
}
int arrayValue = [[rowArray objectAtIndex:indexPath.row] intValue];
cell.primaryLabel.text = [listOfItems objectAtIndex:arrayValue+1];
cell.secondaryLabel.text = [listOfItems objectAtIndex:arrayValue+2];
cell.myImageView.image = [UIImage imageNamed:[listOfItems objectAtIndex:arrayValue+4]];
//Time
cell.timeImageView.image = [UIImage imageNamed:@"03-clock.png"];
cell.timeLabel.text = [listOfItems objectAtIndex:arrayValue+6];
//Views
cell.viewsImageView.image = [UIImage imageNamed:@"04-eye.png"];
cell.viewsLabel.text = [listOfItems objectAtIndex:arrayValue+7];
//Stars
NSString *starsString = [listOfItems objectAtIndex:arrayValue+8];
if ([starsString isEqualToString:@"S0"]) {
cell.starsImageView.image = [UIImage imageNamed:@"0-stars.png"];
}
if ([starsString isEqualToString:@"S0_1"]) {
cell.starsImageView.image = [UIImage imageNamed:@"0_1-stars.png"];
}
if ([starsString isEqualToString:@"S1"]) {
cell.starsImageView.image = [UIImage imageNamed:@"1-stars.png"];
}
if ([starsString isEqualToString:@"S1_1"]) {
cell.starsImageView.image = [UIImage imageNamed:@"1_1-stars.png"];
}
if ([starsString isEqualToString:@"S2"]) {
cell.starsImageView.image = [UIImage imageNamed:@"2-stars.png"];
}
if ([starsString isEqualToString:@"S2_1"]) {
cell.starsImageView.image = [UIImage imageNamed:@"2_1-stars.png"];
}
if ([starsString isEqualToString:@"S3"]) {
cell.starsImageView.image = [UIImage imageNamed:@"3-stars.png"];
}
if ([starsString isEqualToString:@"S3_1"]) {
cell.starsImageView.image = [UIImage imageNamed:@"3_1-stars.png"];
}
if ([starsString isEqualToString:@"S4"]) {
cell.starsImageView.image = [UIImage imageNamed:@"4-stars.png"];
}
if ([starsString isEqualToString:@"S4_1"]) {
cell.starsImageView.image = [UIImage imageNamed:@"4_1-stars.png"];
}
if ([starsString isEqualToString:@"S5"]) {
cell.starsImageView.image = [UIImage imageNamed:@"5-stars.png"];
}
//favorite
NSString *IDString = [listOfItems objectAtIndex:arrayValue];
NSLog(@"ID String: %@", IDString);
if (videoerIFavoritDatabase == 0) {
NSLog(@"Der er ingen videoer i favorit databasen!");
}
else {
for(int i=0; i < [tableviewFavoritArray count]; i++) {
NSLog(@"ID Array Value:%i", i);
if([IDString isEqualToString:[tableviewFavoritArray objectAtIndex:i]])
{
cell.favoriteImageView.image = [UIImage imageNamed:@"favoriteTableview@2x.png"];
NSLog(@"ER favorit:%i = ID%@", i, [tableviewFavoritArray objectAtIndex:i]);
break;
}
else { cell.favoriteImageView.image = [UIImage imageNamed:@"empty.png"];
break;
}
}
}
return cell;
}