Cela peut être une question stupide, mais est-il possible de garder un droit UIBarButtonItem
sur plusieurs vues gérées par un UINavigationController
? J'ai une progression des vues qui partagent souvent le même droit UIBarButtonItem
, mais quand je pousse une nouvelle vue à mon UINavigationController
, je dois redéfinir le bouton à chaque fois, même si cela n'a pas changé. La plupart du temps, l'animation transitionnelle perceptible d'une vue à l'autre est ce qui me dérange parce que le même bouton disparaît brièvement puis revient, ce qui est inutile puisqu'il n'y a pas de changement visuel réel. Devrais-je envisager d'ajouter un UIButton
en tant que sous-vue de mon UINavigationBar
et d'effectuer un effet "bouton de droite" de cette façon?Propriété rightBarButtonItem persistante de UINavigationItem
Répondre
Nous l'avons fait dans notre application. Nous avons créé un seul UIBarButtonItem que nous passons d'un UIViewController à un autre lorsque l'utilisateur navigue. L'astuce consistait à utiliser UINavigationControllerDelegate, la méthode navigationController: willShowViewController: animated:. Nous avons défini le rightBarButtonItem du UIViewController sortant sur nil et le rightBarButtonItem du contrôleur entrant sur votre bouton. C'est une douleur à gérer, mais ça fonctionne.
UIBarButtonItems peut être créé en tant qu'instances autonomes dans un fichier nib/xib. S'il n'y a rien de spécial qui vous empêche de construire le bouton dans le constructeur Interface, vous devriez le connecter à la propriété rightBarButtonItem de UINavigationItem pour chaque contrôleur de vue qui doit réutiliser le bouton. Aucun objectif c nécessaire.
Salut Matt, Pouvez-vous être plus précis avec l'exemple - Je crois que c'est l'implémentation dans l'exemple de code NavBar.xcode, mais j'ai du mal à le suivre tout au long. (BTW - J'ai voté pour votre réponse car je pense que c'est à la fois correct et la solution plus élégante.) – mobibob
Génial! Je vous remercie. J'ai oublié d'enquêter sur UINavigationControllerDelegate. – LucasTizma
Merci! A travaillé pour moi !! :) –
Hey, comment puis-je obtenir le contrôleur sortant UIView? il semble que je ne peux obtenir que celui qui sera présenté, mais pas l'actuel? acclamations – zanona