1

Хорошо, у меня есть несколько сложных данных, которые нужно поместить в пользовательский вид таблицы. Ниже представлена ​​структура NSMutableDictionaryUITableView - заполняющая таблица с битовыми сложными данными

cellData = [ "Section Header title" : NSMutableArray]; // NSMutableArray has custom cell objects 

Таким образом, в основном я мечения массив объектов пользовательских ячеек с именем соответствующего заголовка раздела. Проблема в том, что я не смог установить данные в ячейку таблицы. До сих пор я занимаюсь ... в cellForRowAtIndexPath

HomeTableViewCell *cell = (HomeTableViewCell*) [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath]; 
NSString *sectionTitle = [sectionNames objectAtIndex:indexPath.row]; 

NSMutableArray *array = [cellData objectForKey:sectionTitle]; 

if ([sectionTitle isEqual:@"Email"]) { 
    Email *email = (Email*) [arr objectAtindex:indexPath.row]; // I know this is wrong because there're multiple objects in "array". I couldn't get it right 
    [cell setCellData:...]; 
} 

Просто с помощью indexPath.row я не мог получить все объекты из «массива». Любой, кто попытался заполнить пользовательскую таблицу со списком значений словаря («ключ»: «Массив»)?

ответ

3

Я думаю, что вы хотите сделать, это использовать indexPath.section при получении название раздела:

NSString *sectionTitle = [sectionNames objectAtIndex:indexPath.section]; 

После того, как вы правильно раздел ваши данные должны выстраиваться правильно.

Конечно, это предполагает, что у вас есть ваши другие методы настроены правильно, а именно:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ 
    return sectionNames.count; 
} 

и

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 
    NSString *sectionTitle = [sectionNames objectAtIndex:indexPath.row]; 
    NSMutableArray *array = [cellData objectForKey:sectionTitle]; 
    return array.count; 

} 
+0

Но как я должен заполнить данные в 'метод cellForRowAtIndexPath', так как у меня массив настраиваемых объектов в паре с заголовком раздела? Использование этого 'Email * email = (Email *) [arr objectAtindex: indexPath.row];' не помогает. –

+1

Я понял! 'indexPath.row' вместо' indexPath.section' разрушил все! Спасибо. –

Смежные вопросы