сгруппированное табличное представление и элементарное управление - PullRequest
0 голосов
/ 28 декабря 2011

У меня есть UITableViewController, отображающий данные ядра. Моя сущность данных имеет 5 свойств. Я хочу просмотреть данные в разделах в табличном представлении группы. Используя сегментированный элемент управления tableViewController, я хочу просмотреть их по свойству A, когда выбран сегмент A, свойству B, когда выбран B, и C, когда выбран C.

Чтобы уточнить: допустим, что свойство A является «брендом». Когда выбран сегмент «бренд», я хочу, чтобы заголовок группы читался как «BrandX», а затем в первом сгруппированном разделе перечислялся список всех данных, имеющих марку X. Следующий раздел будет помечен как «Бренди» и так далее. Аналогично для сегментов «размер» и «материал», например.

Итак, в итоге, один контроллер табличного представления, который отображает таблицу в разделах тремя различными способами, управляемыми сегментированным элементом управления.

Я попытался использовать оператор switch для segmentedControl.selectedSegmentIndex, а затем использовать разные NSSortDescriptors для каждого случая. Не сработало.

Я попытался использовать операторы if в fetchedResultsController аналогичным образом. Не происходит.

Я просто не вижу этого. Кто-нибудь с идеями?

Спасибо

1 Ответ

1 голос
/ 28 декабря 2011

Чтобы сделать это, вы будете заново создавать свой fetchedResultsController при каждом изменении SegmentControl.Установите IBAction для элемента управления сегментом, который будет:

self.fetchedResultsController = nil; // destroys old one
[self.tableView reloadData]; // tableview will reload and recreate new fetchedResultsController

В fetchedResultsController установите свой ключ сортировки, используя selectedSegmentIndex, а затем используйте его, чтобы установить дескрипторы сортировки и namekeypath раздела, и обязательно установите кэш в ноль.1004 *

- (NSFetchedResultsController *)fetchedResultsController {
    ....
    NSString *sortKey = "according to current selected segment"; // set in a switch
    NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:sortKey ascending:YES];
    NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] 
               initWithFetchRequest:fetchRequest 
               managedObjectContext:self.managedObjectContext 
                 sectionNameKeyPath:sortKey cacheName:nil];
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...