Как перезагрузить таблицу? - PullRequest
0 голосов
/ 02 июня 2011

У меня есть 2 вида, с которыми мы имеем дело.Основное представление и вспомогательное представление.

Строка ячейки табличного представления основного представления показывает количество объектов в подвиде этой ячейки.Когда я удаляю ячейку из подпредставления и возвращаюсь к основному представлению, строка, показывающая количество, должна уменьшиться на 1. Сейчас эта строка не меняется, пока я не перезапущу приложение.

Есть идеиЯ могу это исправить?Счет извлекается из NSFetch.

Редактировать: добавлен код

- (void)configureCell:(TDBadgedCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
    NSDate *today = [NSDate date]; 
    NSDate *thisWeek  = [today dateByAddingTimeInterval: -604800.0];
    NSDate *thisMonth = [today dateByAddingTimeInterval: -2629743.83];
    else if (indexPath.row == 2)
    {
        NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
        self.predicate = [NSPredicate predicateWithFormat:@"(timeStamp >= %@) AND (timeStamp <= %@)", thisWeek, today];
        [fetchRequest setPredicate: predicate];
        [fetchRequest setEntity:[NSEntityDescription entityForName:@"Session" inManagedObjectContext:managedObjectContext]];
        NSError *error = nil;
        NSArray *results = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
        NSLog(@"Fetch error: %@", error);

        cell.badgeString = [NSString stringWithFormat:@"%i", [results count]];
        [fetchRequest release];
    }
    else if (indexPath.row == 3)
    {
        NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
        self.predicate = [NSPredicate predicateWithFormat:@"(timeStamp >= %@) AND (timeStamp <= %@)", thisMonth, today];
        [fetchRequest setPredicate:predicate];
        [fetchRequest setEntity:[NSEntityDescription entityForName:@"Session" inManagedObjectContext:managedObjectContext]];

        NSError *error = nil;
        NSArray *results = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
        NSLog(@"Fetch error: %@", error);

        cell.badgeString = [NSString stringWithFormat:@"%i", [results count]];
        [fetchRequest release];
    }
    else if (indexPath.row == 4)
    {
        cell.badgeString = [NSString stringWithFormat:@"%i", [[self.fetchedResultsController fetchedObjects] count]];
    }

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

Если ваши данные на самом деле корректно обновляются со стороны модели, вы должны быть в состоянии позвонить

[tableView reloadData];

, и все будет обновляться правильно.Возможно, вы можете поместить это в viewWillAppear.

Надеюсь, это поможет.

0 голосов
/ 02 июня 2011

Вы должны быть уверены, что получаете правильный дескриптор для табличного представления, если вы сделали аксессор для своего табличного представления в заголовочном файле, то вам нужно вызвать его по этому имени в методе viewWillLoad.

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