Je suis en train de définir le titre de mes contrôleurs de vue comme ceci dans View did load:
self.title = @"my title";
avant cela, je définissais le titre dans les story-boards pour le contrôleur de vue et le contrôleur de navigation dans lesquels il est intégré. Je l'ai défini sur: "Titre";
Lorsque je clique sur l'onglet qui contient le contrôleur de vue, le titre de l'élément de la barre d'onglets et uiviewcontroller
change en: mon titre
Je voudrais que le contrôleur de vue change mais que l'élément de la barre d'onglets reste avec le titre: Titre
Comment puis-je accomplir cela?
Donc pour ceux qui ne comprennent toujours pas (comme moi)
self.navigationItem.title = @"my title";
définit le titre de la barre de navigation .self.tabBarItem.title = @"my title";
définit le titre de la barre d'onglets .self.title = @"my title";
définit les deux .la source
Rapide
Définir le titre de la barre supérieure
Définir le titre de l'élément d'onglet
Définir les deux titres
la source
topItem
?Pour Swift, utilisez ceci,
la source
Remarque: Si vous avez un contrôleur de barre d'onglets avec des contrôleurs de navigation à la racine de chaque contrôleur de vue, la définition de l'élément de barre d'onglets sur les contrôleurs de vue n'affectera pas le titre si vous définissez le
navigationItem.title
. Vous devreztabBarItem
plutôt définir le sur le contrôleur de navigation pour qu'il soit récupéré à partir du contrôleur de la barre d'onglets.Aucune des réponses publiées par d'autres n'a fonctionné pour moi parce que les contrôleurs de vue de ma barre d'onglets ont tous des contrôleurs de navigation à leur racine - c'est un modèle de hiérarchie courant pour
UITabBarController
. Vous devez définir le contrôleur de navigation à latabBarItem
place pour que le titre s'affiche différemment dunavigationItem
titre du.Vous pouvez créer vos
tabBarItem
et les associer directement à votre VC comme tel.Ensuite, vous aurez quelque chose comme ça:
Mais cela devrait être changé comme suit afin de récupérer le déjà associé
tabBarItem
du contrôleur de vue et de le définir automatiquement sur le contrôleur de navigation.Vous pourrez maintenant avoir un titre différent (défini à partir de votre VC) séparé du titre défini pour votre
tabBarItem
.la source
Assez tard pour cela. Vous pourriez avoir votre TabBarController servir de UITabBarControllerDelegate et UINavigationControllerDelegate pour lui-même et les contrôleurs de navigation incorporés dans chacun de vos onglets respectivement.
.h:
.m:
Sur la base de quelques tests rapides, il semble que ces deux actions de délégué devraient couvrir tous les cas lâches et mettront à jour le titre que vous changiez d'onglet ou que vous naviguiez dans votre contrôleur de navigation. Pour être complet, vous pouvez également mettre à jour votre titre dans didShowViewController , mais d'après ce que j'ai vu, je ne pense pas que ce soit nécessaire.
la source
Probablement un peu tard (mais).
La définition du titre d'un VC change le titre de la navigation ET de la tabBar. (si le VC est déjà attaché aux deux).
Si vous souhaitez avoir des titres séparés, vous devez les définir manuellement, vous définissez normalement le titre du VC, puis spécifiquement le titre du tabBarItem, car il s'agit d'une propriété du
la source
Swift 4.2
Voilà, j'ai créé une extension pour UIViewController:
Et puis depuis votre manette:
la source