#iphone #ios #uitableview #core-data
#iPhone #iOS #uitableview #core-data
Вопрос:
У меня есть представление таблицы, которое сгруппировано по месяцам и годам. Для этого я создал атрибут transient и соответствующий дескриптор сортировки в NSFetchedResultsController, который помогает мне группировать в соответствии с месяцем и годом. Представление таблицы работает отлично и отображает разделы так, как я хочу (используя titleForHeaderInSection).
Я хочу добавить индекс в представление таблицы, и в настоящее время я здесь застрял. Я считаю, что единственный способ сделать это -:
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
Итак, как мне предоставить ему массив всех названий разделов?
PS: Это мой первый пост.
Комментарии:
1. да, пожалуйста, опубликуйте свои результаты и отметьте свой собственный ответ. В противном случае люди будут продолжать читать ваш вопрос в надежде помочь найти ответ
Ответ №1:
Вот что я сделал:
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
NSInteger lastSectionIndex = [self.tableView numberOfSections] - 1;
if (lastSectionIndex == -1) {
return nil;
}
NSMutableArray *sectionNames = [[NSMutableArray alloc] init];
NSString *sectionName = nil;
for (int i = 0; i <= lastSectionIndex; i ) {
sectionName = [[[self.fetchedResultsController sections] objectAtIndex:i] name];
[sectionNames addObject:sectionName];
}
return sectionNames;
}
Комментарии:
1. Гораздо более короткая версия этого была бы
return [[self.fetchedResultsController sections] valueForKeyPath:@"name"];
.2. О, большое спасибо. Это на самом деле то, что я искал. Я был смущен между свойством «name» и ключом «name».