2009-07-12 7 views
1

J'écris une application basée sur UITabBarController qui a plus de 10 viewControllers avec les UINavigationControllers correspondants. Chaque viewContoller a un titre (court) et un titre de navigation (long). Le titre court apparaît sous l'icône TabBar et le titre long apparaît en haut de la barre de navigation. Le UITabBarController affiche les 4 premiers onglets et ajoute automatiquement un onglet "Plus" qui affiche la liste des autres onglets. Cette liste montre le titre (court) de chacun des contrôleurs de vue. Comment puis-je lui indiquer de montrer le (long) navigationTitle à la place?Personnalisation de la liste "Plus" des onglets UITabBarController

Répondre

3

J'ai récemment fait cela pour une application et trouvé la meilleure façon de le faire était de créer une source de données personnalisée qui renommait le titre dans le tableau plus au nom long. Il est simplement impossible de le faire dans l'autre sens car les noms doivent être modifiés trop souvent (une fois sur le chargement de la barre d'onglets, une fois sur plus de chargement, et encore sur la section personnalisée).

J'ai trouvé les instructions de base here et je l'ai simplement fait changer le titre. J'utilise une plist pour tenir tous les noms courts et longs pour chaque section.

Mon code pour le cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [originalDataSource tableView:tableView cellForRowAtIndexPath:indexPath]; 
    cell.textLabel.text = [[sections objectAtIndex:indexPath.row+4] objectForKey:@"LongName"]; 
    return cell; 
} 
0

Vous devriez essayer d'avoir tous les onglets par défaut au titre (long), puis modifier par programme les onglets visibles à leurs noms (courts). Faites-moi savoir si vous ne savez pas comment les modifier par programme. Cela pourrait en fait être un moyen de faire ce que vous vouliez en premier lieu. Je vais élaborer sur invite.

+0

S'il vous plaît me dire comment changer les onglets visibles par programmation à leurs noms (courts). Pendant ce temps, j'ai réussi en sous-classant UITabBarController qui me permet également de changer les couleurs du MoreViewController. – Vic

+0

Je voudrais aussi savoir ce que vous en pensez, j'ai un problème similaire. Je ne veux pas vraiment sous-classer UITabBarController, donc changer de programme serait utile. Le problème est que l'écran "configurer" affiche également les noms longs si vous faites cela et je ne trouve pas de point pour changer les noms avant que ces icônes n'apparaissent. – bjtitus

+0

Je pense qu'il est beaucoup plus facile de le faire en implémentant une nouvelle source de données pour le contrôleur de navigation plus et en renommant le titre de chaque cellule. Cela signifie que les contrôleurs de vue ne sont pas renommés à chaque fois mais seulement les noms affichés sont. Dans le cas contraire, vous devez changer le titre au moins deux fois (avant l'écran de configuration et après) en ne changeant pas pour quand les éléments de la barre sont chargés. – bjtitus

Questions connexes