2009-09-03 5 views
0

J'ai un UITabController. Un des onglets est un UINavigationController. Pousser et sauter la pile de navigation fonctionne très bien. Chaque UIViewController a son propre NIB avec juste le UIView connecté. Mais malheureusement, je n'ai qu'un titre affiché pour le contrôleur de navigation racine!UINavigationBar et UINavigationItem mais pas de titre

Habituellement, lorsque vous créez un UIViewController dans une NIB, vous avez un attribut de titre que vous pouvez définir. Mais dans ce cas, le contrôleur de vue est le propriétaire du fichier NIB. Et dans IB, il n'y a aucun moyen de définir le titre.

Ce que je pouvez est de définir le titre dans initWithNib, puis il apparaît.

if (self = [super initWithNibName: @"MyViewController" bundle:nil]) { 
    self.title = @"test"; 
} 

Mais je veux définir le titre dans IB.

Je suis un peu perdu ici. Aucune suggestion?

Répondre

0

donc apparemment leur est pas possible de définir le titre du UIViewController dans ce scénario. Dommage.

+0

Comme moi, je crois que ce _SHOULD_ serait possible, et j'aimerais vraiment comprendre comment. Vous ne l'auriez pas compris depuis 1.5 ans? – Craig

1

Ceci est en effet tout possible dans IB.

Vous devez charger le fichier NIB avec le UITabController. Ensuite, réglez le Mode d'affichage (ensemble de 3 icônes en haut à gauche) sur l'option du milieu. Cela montre tous les composants comme un arbre imbriqué.

Sélectionnez ensuite le contrôleur View en question et affichez l'inspecteur Attributs. Là, vous verrez que vous pouvez changer le titre.

ont inclus une capture d'écran afin que vous puissiez voir ce que je veux dire ...

alt text http://img7.imageshack.us/img7/1875/screenshot20090903at120.png

+0

En effet. Et c'est ainsi que j'ai défini le titre du contrôleur ** root *. La question concerne les autres contrôleurs qui sont poussés au sommet. Jusqu'à présent, je ne savais comment modifier leur titre dans le code car IB n'expose pas l'attribut title sur le propriétaire du fichier. Ouvrir par ex. le NIB "Completed". C'est là que ça devient intéressant pour moi. – tcurdt

+0

Dans votre exemple, UITabController est le contrôleur * root *. Le contrôleur de navigation est essentiellement le même objet que le passage de vue différent en dessous, ce qui explique pourquoi si vous souhaitez définir un titre pour les sous-vues, vous devez le faire dans le code. Vous n'avez pas besoin de l'appeler dans la méthode init cependant - juste self.title = @ "test" le fera dans l'une des méthodes du délégué UIViewController. – h4xxr

+0

Le contrôleur de navigation gère les contrôleurs de vue (pas les sous-vues - pas directement au moins). Je faisais référence au contrôleur de vue racine géré par le contrôleur de navigation. Lorsqu'un contrôleur de vue est poussé sur la pile de navigation, le titre du contrôleur de vue est affiché. Comme la NIB crée l'instance de contrôleur de vue, il devrait être possible de définir le titre dans IB. Jusqu'à présent, je ne vois pas de moyen de le faire. C'est le problème. – tcurdt

Questions connexes