Je serais prêt à parier que c'est un bug de la part d'Apple que je suis en cours d'exécution dans le exact même problème. La raison en est que je peux obtenir une mesure UIBarButtonItem
à apparaître, mais seulement quand je ne pas essayer d'utiliser l' initWithCustomView:
méthode. Par l'API, la manette de navigation vérifie les éléments suivants, lorsqu'un nouveau-vue-contrôleur est poussé:
- Si le nouveau haut-niveau-vue-contrôleur a une coutume gauche bouton de la barre d'élément, cet élément est affiché. Pour préciser la personnalisation d'un gauche bouton de la barre d'élément, de définir les leftBarButtonItem propriété de l'avis du contrôleur d'élément de navigation.
- Si l'affichage de niveau supérieur contrôleur ne dispose pas d'une coutume gauche bouton de la barre d'élément, mais l'élément de navigation de l'affichage précédent contrôleur a un élément valide dans son backBarButtonItem propriété, la barre de navigation affiche l'élément en question.
- Si une coutume bouton de la barre d'élément n'est pas spécifié par le point de vue des contrôleurs, un défaut de bouton de retour est utilisé et son titre est définie à la valeur de la propriété de titre de la vue précédente contrôleur-qui est, le point de vue du contrôleur descend d'un niveau dans la pile. (Si il y a une seule vue-contrôleur sur la pile de navigation, pas de bouton de retour est affiché.)
Mon cas (comme le vôtre) est de 2. Je spécifier un code exactement la même que la vôtre (c'est à dire, la création d'un UIButton
, en définissant son image
propriétés pour les différents états, la création d'un UIBarButtonItem
, l'initialiser avec l' UIButton
, alors la configuration de ma vue actuelle du contrôleur backBarButtonItem
de la propriété de l' UIBarButtonItem
); toutefois, quand plus tard, j'ai pousser mon point de vue, contrôleur, rien ne s'affiche sur le côté gauche de ma manette de navigation. Étrangement, j'pouvez cliquer sur le bouton "Retour" doit être, et il apparaît de la vue-contrôleur.
Fait intéressant, si je crée un UIBarButtonItem
à l'aide de l' initWithTitle:style:target:action:
méthode au lieu de l' initWithCustomView:
méthode, il n' afficher un bouton personnalisé avec un titre personnalisé. Aussi, comme Travis mentionné, à l'aide de l' leftBarButtonItem
de la propriété au lieu de cela fonctionne très bien. Je préfère adhérer à l'sanctionné logique, cependant, en spécifiant le bouton "Retour" pour le point de vue actuel contrôleur -- être affichée plus tard, quand un nouveau-vue-contrôleur est poussé -- au lieu de créer un gauche bouton de la fenêtre contrôleur, qui, sans doute, ne devrait avoir aucun souci pour quoi que ce soit se rapportant à la vue-contrôleur qui est venu avant lui. :-\