WG. Here is a dump of part of ViewDidLoad -- I'll leave it up for a few days.. Thanks again for looking and let me know if you see something odd..
//Section Expand/collapse
model.modelActions.didAddSection = ^(SCTableViewModel *tableModel, SCTableViewSection *section, NSUInteger sectionIndex)
{
SCExpandCollapseCell *cell = [SCExpandCollapseCell cellWithExpandText:section.headerTitle collapseText:section.headerTitle ownerSectionExpanded:YES];
cell.backgroundColor = [colors objectAtIndex:decade];
cell.textLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:20];
counter = section.cellCount;
section.expandCollapseCell = cell;
UIImage * image = [ UIImage imageNamed:@"downTriangle.png" ] ;
UIControl * c = [ [ UIControl alloc ] initWithFrame
CGRect){ CGPointZero, image.size } ] ;
c.layer.contents = (id)image.CGImage ;
cell.accessoryView = c ;
};
//YearNumber
model.cellActions.willConfigure = ^(SCTableViewCell *cell, NSIndexPath *indexPath) {
// Create yearCount preparation dictionary
DDMemories *memory = (DDMemories *)cell.boundObject;
NSString *tempYear = [memory valueForKey:@"year"];
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:tempYear];
[memory setValue:myNumber forKey:@"yearNumber"];
self.tableView.separatorColor = [UIColor blackColor];
};
// yearCount preparation dictionary
NSMutableDictionary *yearCountDictionary = [NSMutableDictionary dictionary];
for(NSObject *object in model.items) {
NSString *year = [object valueForKey:@"year"];
//NSInteger yearCount = [(NSNumber *)[yearCountDictionary valueForKey:year] integerValue];
yearCounter = [(NSNumber *)[yearCountDictionary valueForKey:year] integerValue];
yearCounter++;
//NSLog(@"yearCounter 2: %li", (long)yearCounter);
[yearCountDictionary setValue:[NSNumber numberWithInteger:yearCounter] forKey:year];
model.sectionActions.didFetchItemsFromStore = ^(SCArrayOfItemsSection *itemsSection, NSMutableArray *items)
{
// This is not the only way to sort, but probably the easiest when using STV
SCDataFetchOptions *fetchOptions = [SCDataFetchOptions optionsWithSortKey:@"year" sortAscending:NO filterPredicate:nil];
[fetchOptions sortMutableArray:items];
};
// header Title
model.modelActions.sectionHeaderTitleForItem = ^NSString*(SCArrayOfItemsModel *itemsModel, NSObject *item, NSUInteger itemIndex)
{
NSString *year = [item valueForKey:@"year"];
NSInteger yearInt = [year integerValue];
NSInteger age = yearInt - birthYear;
decade = age / 10;
if (decade < 0) decade = 0;
yearCounter = [(NSNumber *)[yearCountDictionary valueForKey:year] integerValue];
NSString *countString;
if (yearCounter == 1) {
countString = @"record";
} else {
countString = @"records";
}
NSString *yearHeader;
if (_IPAD) {
yearHeader = [NSString stringWithFormat:@"%@ %ld %@ age: %ld", year, (unsigned long)yearCounter, countString, (unsigned long) age ];
} else {
yearHeader = [NSString stringWithFormat:@"%@ %ld %@ age: %ld", year, (unsigned long)yearCounter, countString, (unsigned long) age ];
}
return yearHeader;
};
[model.modeledTableView reloadData];
//Display
model.cellActions.willDisplay = ^(SCTableViewCell *cell, NSIndexPath *indexPath)
{
NSInteger year = [(NSNumber *)[cell.boundObject valueForKey:@"year"] integerValue];
NSInteger age = year - birthYear;
NSString *ageString = [NSString stringWithFormat:@"%li", (long)age ];
[cell.boundObject setValue:ageString forKey:@"age"];
cell.accessoryType = UITableViewCellAccessoryNone;
};
self.tableViewModel = model;
Edited by David DelMonte, 24 January 2015 - 08:46 PM.