viewforheaderinsection custom iphone uitableview header title footer

iphone - custom - Cambiar el encabezado/pie de página de la sección UITableView ¿MIENTRAS SE EJECUTA la aplicación?



viewforheaderinsection swift (4)

Estoy enfrentando un problema que no puedo resolver ... Tengo una tabla agrupada cuyo encabezado de sección y pie de sección se muestran correctamente al iniciarse gracias a

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

y

- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section

Sin embargo, no puedo descubrir cómo actualizarlos más tarde, no sé cómo cambiar esos textos y es bastante frustrante porque en mi opinión no tenía que ser nada más difícil que cambiar una etiqueta de texto o lo que sea ... propiedad ".text" ...)

Busqué en toda la documentación sin suerte ...

Cualquier ayuda es altamente apreciada! Saludos, Enrico


En el método delegado, agregue una llamada de método que devuelva el nombre de la sección, por ejemplo:

- (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] description];" } // ...

Luego, cuando necesite actualizar el título de la sección, envíe una NSNotification que NSNotification algo como el siguiente método:

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

Si la tabla es grande y desea un control más NSNotification , pase una NSNotification con un NSDictionary que contiene la sección que desea recargar, lea el diccionario en -reloadSections:withRowAnimation: para recuperar la sección NSInteger , y use la vista de tabla -reloadSections:withRowAnimation: to recargar esa sección específica.


En su uso TableViewController

[self.tableView reloadSectionIndexTitles];


Puedes usar:

-(void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation

Y en

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

Definir su nuevo texto de encabezado en la declaración.

Esto hará una buena animación mientras cambia el encabezado / pie de página.


Use esta línea en su código donde desea cambiar el título:

[[self theTableViewToChangeItsHeader]reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];