Wednesday, February 9, 2011

Change UITableView section header/footer WHILE RUNNING

Hi everybody

I'm facing a problem I cannot resolve... I have a grouped table whose section header and section footer get displayed correctly upon launch thanks to

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
and

- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
Yet, I can't figure out how to update them later, I don't know how to change those texts and it's quite frustrating because in my mind it had to be nothing harder than changing a text label or whatever... (some ".text" property...)

I searched all through the documentation with no luck...

In the delegate method, add a method call that returns the section name, e.g.:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
switch (section) {
case firstSectionTag:
return [self firstSectionTitle];
case secondSectionTag:
return [self secondSectionTitle];
// ...
default:
return nil;
}
}

- (NSString *)firstSectionTitle {
// generate first section title programmatically, e.g. "return [NSDate date];"
}

// ...
Then, when you need to update the section title, send an NSNotification that triggers something like the following method:

- (void)refreshTableSectionTitles:(NSNotification *)notification {
[tableView reloadData];
}

No comments:

Post a Comment

Followers