Сортировать NSFetchedResultsController на IBAction

Я хочу отсортировать мои данные в моем Tableview. У меня есть кнопки UIB с IBAction для вызова сортировки.
Я создал строку, которая содержит sortKey. Я устанавливаю ключ и снова вызываю fetchedResultsController, чтобы отсортировать таблицу.

Проблема в том, что метод fetchedResultsController не вызывается и сортировка не работает.
вот мой код:

- (IBAction) actionSortCardColor:(id) sender {
    XLog(@"");
    sortString = @"colorOrder";
    [self fetchedResultsController];

    [self actionRemoveSortView:sender];
}    

Вот мой метод fetchedResultsController:

- (NSFetchedResultsController *)fetchedResultsController
{

[...]


NSPredicate *inboxPred = [NSPredicate predicateWithFormat:@"archived == 0"];

// Set the batch size to a suitable number.
[fetchRequest setFetchBatchSize:20];
[fetchRequest setPredicate:inboxPred];

XLog(@"sortString: %@", sortString);
if (sortString == nil) {
    sortString = [[NSString alloc] initWithString:@"sortingOrder"];
}

NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"setTitle" ascending:YES] autorelease];
NSSortDescriptor *sortDescriptor2 = [[[NSSortDescriptor alloc] initWithKey:sortString ascending:YES] autorelease];
NSArray *sortDescriptors = [[[NSArray alloc] initWithObjects:sortDescriptor, sortDescriptor2, nil] autorelease];

[fetchRequest setSortDescriptors:sortDescriptors];

[...]
}  

1 ответ

Решение

Где вы даете табличному представлению знать об этих изменениях? Вам нужно будет перезагрузить данные для вашего экземпляра табличного представления [tableView reloadData];

Когда вы устанавливаете __fetchedResultsController равным nil, он не может обновлять представление UITable с любыми изменениями, потому что оно не находится в области видимости.

Другие вопросы по тегам