7
votes

Modifier le titre du titre de navigationItem basé sur la barre d'onglet sélectionnée

Entrez la description de l'image ici J'ai un contrôleur de la barre d'onglets qui dispose de quatre contrôleurs d'affichage possibles. Ma barre d'onglets principale Voir que toutes les autres vues ont une relation aussi possède une barre de navigation que je peux double-cliquer sur et modifier le titre de mon storyboard. Ce que j'ai besoin de savoir, c'est comment modifier le titre de cet élément de navigation en fonction de l'élément de barre d'onglets sélectionné.

Par exemple, je vais avoir quatre onglets. 1 est "Bills", 2 est "Épicerie", 3 est "Gas" et 4 est "Personnel". Je veux que le titre de ma vue soit des factures si l'onglet "Bills est sélectionné et ainsi de suite.

Edit: Espérons que cela clarifiera ce que j'essaie d'accomplir.

Je veux pouvoir changer le titre de la barre de navigation en haut de chacune des quatre vues de table à droite. Le contrôleur à barres d'onglets est le seul endroit où je peux réellement double-cliquer et changer la tuile pendant le storyboard. Je souhaite que le titre change en fonction de la vue Tableau est sélectionné dans la barre d'onglets.


3 commentaires

Les «quatre contrôleurs d'affichage possibles» sont-ils une instance de la même classe? Est-ce où vous voulez changer le titre? Ou souhaitez-vous modifier le titre de Say un contrôleur de vue parent?


Chacun des contrôleurs de vue de la table avec ses propres cours, même à travers elle aura presque la même chose en chargement d'une source de données différente.


Ok, j'ai édité ma réponse. Faites-moi savoir si cela aide.


4 Réponses :


1
votes

Vous devriez simplement être capable de définir la propriété Titre dans chacun des "contrôleurs de la vue" comme ceci: xxx

puis, chaque fois que ladite onglet de ce contrôleur de vue est cliqué sur la navigation. Le titre de la barre devrait changer de ce titre.

EDIT

On sonne comme si vous avez peut-être placé un uinavigationbar objet de l'interface Builder dans la vue de votre barre d'onglets. Au lieu de cela, vous voulez réellement avoir le uitabbarcontroller incorporé dans un uinavigationcontroller .

Passez le tutoriel de Ray Wenderlich sur le storyboarding de départ, et cela devrait vous montrer comment faire ceci:

http://www.raywenderlich.com/5138/beginning-storyboards-inios-5-Part-1 << / p>

bonne chance!


5 commentaires

C'est ce que j'ai pensé que je devais faire juste n'était pas sûr de 100% des étapes. L'ensemble du protocole et de la délégation est toujours un peu déroutant pour moi. La partie où vous dites que je dois passer dans une "référence d'enfant", est-ce que cela se fait mettre dans ma classe partielle?


C'est ce que je pensais mais pour certains ça ne marche pas. Pendant le débogage, il frappe la ligne de code et je peux voir que _title a été changé, mais cela ne se présente pas. Je pense que cela a à voir avec le fait que chacun de ces quatre contrôleurs de vue de table n'a pas réellement d'élément de navigation. Le seul endroit que mon élément de navigation existe réellement est au contrôleur à barres d'onglets. Les quatre contrôleurs de la vue Tableau ne disposent pas d'un élément de navigation sélectionnable dans Storyboard.


Avez-vous écrit du code pour les quatre contrôleurs de la vue de table créant des éléments de navigation? Si oui, pourriez-vous le poster? Sinon, vous devez créer des éléments de navigation, avec code ou dans le storyboard - je peux expliquer comment faire cela si vous en avez besoin.


@Joe - Mes articles de navigation sont tous créés via l'utilisation de storyboards.


@Jrg - Je crois que c'est comme ça que je l'ai fait. Si je modifie l'option de barre supérieure dans les métriques simulées de déesticules et exécutez, je dispose toujours de la barre de navigation dans mon contrôleur de barre d'onglets, même s'il n'apparaît pas dans le storyboard. Et si je crée une classe personnalisée pour le contrôleur de barres d'onglets, je peux définir le titre sur ce que je veux. Cela ne changera tout simplement pas lorsque je sélectionne un nouvel onglet. Même si j'ai fait un self.title = @ "un nom"; dans l'extrémité arrière associée au contrôleur de vue sélectionné.



1
votes

sur chaque sélection de tabulation, vous pouvez modifier le titre.

   - (void)tabBarController:(UITabBarController *)tabBarController 
     didSelectViewController:(UIViewController *)viewController
    {
      viewController.title=@"your title"
    }


0 commentaires

1
votes

Je devrais vous avertir que cette méthode peut être un hack inélégant, car je ne fais que commencer à comprendre la navigation moi-même. Mais voici comment je voudrais aborder cela:

Fondamentalement, vous devez ajouter un uinavigentitem à chacun des uiviewcontroller s Vous souhaitez avoir un titre et modifier le texte du uinavigentitem En fonction duquel uiviewcontroller est montrant.


0 commentaires

2
votes

Supprimer toute barre de navigation Vous avez ajouté manuellement sur le contrôleur d'affichage et ajoutez ceci à votre ViewDidLoad méthode xxx

ou xxx < / pré>


0 commentaires