2010-12-02 7 views
0

J'ai la question suivante:UINavigationController: régler le titre du prochain UINavigationItem

J'ai un UINavigationController avec un UINavigationBar qui change le titre que vous passez d'une vue à l'autre. Par exemple, la première vue pourrait être appelée Root et la vue suivante pourrait s'appeler Login. La première fois (et la première fois seulement) que j'appelle [navigationController pushViewController: loginViewController animée: YES], la vue Login arrive et le titre "Login" apparaît sur la barre de navigation seulement après que la vue soit complètement apparue. C'est parce que j'ai défini le titre dans une fonction appelée par didShowViewController. Ce que je devrais faire est d'appeler cette même fonction de willShowViewController. Le problème est que l'UINavigationItem pour le nouveau contrôleur de vue n'a pas encore été créé, donc je ne peux pas définir le titre ... Comment contourner ce problème?

grâce,

Répondre

0
Franck-

Il suffit de définir la propriété de titre dans le viewcontroller lors de sa création. L'UINavigationItem est déjà là (ou au moins est créé lorsque vous le touchez), donc il n'y a pas de raison que vous ne puissiez pas le définir ensuite.

1

Vous devez définir le titre de l'élément de navigation dans la méthode viewDidLoad ou loadView du contrôleur de vue, plutôt que les méthodes de délégué UINavigationController. Définir la propriété title du contrôleur de vue après l'avoir créé devrait également faire l'affaire, cependant.

+0

mon mauvais ... J'avais une classe de base dont je dérivais tous mes viewControllers et il y avait une propriété 'title' qui masquait celle de UIViewController – Franck