J'ai un contrôleur de vue qui est la vue détaillée d'une table. Lorsque vous cliquez sur la ligne du tableau, cela vous amène à la vue détaillée. La vue détaillée est intégrée dans un contrôleur de navigation de sorte qu'un bouton en haut à gauche de la barre de navigation vous renvoie à la table. Jusqu'ici tout va bien.
Je souhaite maintenant ajouter un bouton d'édition sur le côté droit de la barre de navigation afin que vous puissiez modifier la vue détaillée. Mon plan est que cela ajoutera un autre contrôleur de vue de manière modale qui vous permettra de modifier les détails de l'élément. Trucs standard.
Cependant, lorsque j'essaie de faire glisser un élément de bouton de barre de la liste d'objets vers la barre de navigation, cela ne prend pas. Au lieu de cela, lorsque je relâche le bouton de la souris, il laisse le bouton de la barre sur le contrôleur de la barre d'onglets en bas. (Mon schéma de navigation comprend différents onglets et pour chaque onglet un tableau, une vue détaillée, etc.)
Tout le monde a déjà rencontré ce problème et peut suggérer ce que je fais de mal ou une sorte de solution de contournement pour ajouter l'élément de bouton de barre sur le côté droit de l'écran de navigation. Dois-je l'ajouter dans le code?
Merci pour vos suggestions.
la source
Réponses:
J'ai le même problème en utilisant Xcode6 et j'ai remarqué que UINavigationItem est ajouté automatiquement pour le premier ViewController que vous intégrez dans NavigationController mais pour les ViewControllers suivants, vous devrez l'ajouter manuellement comme suit:
Maintenant, vous aurez vos boutons de barre collés en haut de votre scène.
Mise à jour La solution fonctionne toujours avec XCode 7 mais je voulais ajouter une photo plus descriptive. Juste au cas où quelqu'un ne serait pas vraiment familier avec les noms standards ou techniques mentionnés ci-dessus. Remarquez les flèches rouges à droite, elles font référence à l'étape 1, étape 2 mentionnée ci-dessus. Notez également la hiérarchie des vues sur le rectangle rouge gauche.
la source
self.navigationItem.rightBarButtonItem = ...
fonctionnera. Je suppose que le UINavigationController sur le premier VC l'instancie pour tous les VC suivants poussés sur la pile. Cependant, en faisant glisser manuellement un là-dessus, pourquoi ne vous retrouvez-vous pas avec 2 UINavigationItems l'un sur l'autre? Celui que vous avez fait glisser manuellement et celui déjà là depuis UINavigationController?Nasty truc:
Ensuite, le contenu sera modifiable et vous aurez un style non obsolète pour segue.
la source
UIBarButtonItem
un contrôleur de vue dans Xcode 7.3 .Le contrôleur de vue de votre storyboard manque probablement un fichier
Navigation Item
. Vous pouvez en faire glisser un depuis la bibliothèque d'objets et le déposer sur votre contrôleur de vue.Vous pourrez ensuite faire glisser et déposer les éléments des boutons de la barre sur le côté gauche ou droit de la barre de navigation.
la source
Je l'ai résolu. faites glisser «Élément de navigation» dans votre vue détaillée. que vous pouvez faire glisser dans l'élément de bouton de barre.
la source
La façon dont j'ai résolu ce problème était, au lieu de faire glisser un UINavigationController dans le Storyboard et d'essayer d'ajouter UIBarButtonItems à cela, j'ai fait glisser un UITableViewController puis je suis allé à
Éditeur-> Intégrer dans-> Contrôleur de navigation
Ce qui a donné le même résultat qu'avant, sauf que je pourrais ajouter UIBarButtonItems des deux côtés de la barre de navigation sans aucun problème.
la source
C'est en fait un problème de xcode. Une astuce qui a fonctionné pour moi est d'ajouter le bouton de la barre dans la STRUCTURE DU FICHIER VUE SUR LA GAUCHE. J'espère que cela vous aidera. :)
la source
Je pense que c'est un bug. J'ai eu le même problème, j'ai résolu ce problème en désactivant les classes de taille, puis en l'activant.
Vous pouvez désactiver et activer les classes de taille dans le document Interface builder.
la source
J'ai également eu ce problème, fermer et rouvrir le projet a fonctionné pour moi.
la source
Je crois que c'est une bizarrerie XCode. J'ai eu le même problème. J'ai dû réinitialiser Xcode et changer le placement des choses sur le storyboard pour enfin le faire fonctionner. Ça marche maintenant.
la source
Je pense que c'est un bug de Xcode. Dans Xcode 8, changez le
segue
dans le storyboard avant le contrôleur de vue de la barre d'onglets pour toutes ses options (show detail
,present
...). Puis revenons àshow
. Essayez de faire glisser les éléments des boutons de la barre et de modifier la vignette. Ça marche pour moi!la source
Avez-vous essayé de «nettoyer» votre projet? Je sais que cela m'aide parfois (allez simplement dans "Produit"> "Nettoyer"). Sinon, supprimez la barre de navigation et réessayez.
Si vous pensez que c'est une erreur de programmation, n'hésitez pas à transmettre votre code. Je serais heureux de vous aider de toutes les manières possibles. :)
la source
Vous devez réinitialiser xCode IDE. Fermez xCode et écrivez les codes ci-dessous sur le terminal ... Cela fonctionnera.
la source
Même problème. J'avais un contrôleur de vue de table à l'intérieur d'un contrôleur de navigation et de nombreux ViewControllers qui suivaient plus bas dans la chaîne. Un «élément de navigation» était créé automatiquement pour le premier contrôleur de vue racine et je pourrais ajouter un «élément de bouton de barre» à ceci sans problème. Via le Storyboard, faites glisser et déposez. Mais c'est tout. Sur le contrôleur de vue de table suivant et d'autres contrôleurs de vue, même s'ils se trouvaient dans le contrôleur de navigation initial (le bouton de retour généré automatiquement est apparu), le storyboard ne me laissait jamais ajouter un élément de bouton de barre.
La solution de Wael Showair n'a pas fonctionné pour moi. Les éléments du bouton de la barre n'apparaissent pas.
Je l'ai résolu par programme à la fin (Swift 2.0):
Aucun élément de navigation supplémentaire ou élément de bouton de barre nécessaire.
la source
J'étais trop confronté au même problème.J'ai pu résoudre ce problème en sélectionnant l'option du contrôleur de vue racine, puis dans la matrice simulée, j'ai changé l'option de la barre supérieure en Barre de navigation opaque et j'ai pu ajouter l'élément en haut de la barre de navigation. cette réponse aidera quelqu'un.
la source
J'ai eu le même problème dans xcode 8. J'ai dû simplement fermer xcode et rouvrir le projet, puis j'ai pu ajouter le bouton de la barre au contrôleur racine sans aucun problème.
la source
Pour XCode 8
Il y a de nombreuses réponses ici. J'ai essayé certains d'entre eux mais je n'ai pas pu y arriver. J'ai donc trouvé ma solution, sélectionnez simplement votre
ViewController
, allez dans la section Inspecteur d'attributs et changez la barre supérieure en Barre de navigation opaque et flèche. Vous verrez la barre de navigation sur votre storyboard. Vous pouvez changer le titre ou ajouter un élément. Si vous ne souhaitez pas conserver Opaque, vous pouvez changer le style en Inféré .la source
Dans Xcode 10, je viens de changer le type de segue allant à ce nouveau contrôleur de vue en `` Push (obsolète) '', j'ai ajouté l'élément de navigation car il était autorisé après avoir effectué ce changement. Si vous revenez au type de segment souhaité à l'origine, l'élément de navigation restera.
la source
Au lieu de faire glisser l '«élément du bouton de barre» vers le «contrôleur de navigation», faites-le glisser vers le «contrôleur de vue détaillée». Lorsque vous intégrez la vue détaillée dans la "Vue de navigation", "Élément de navigation" sera ajouté au "Contrôleur de vue détaillée". Si vous faites glisser l '"élément du bouton de la barre" vers le côté droit de l'élément de navigation, l'élément sera inclus sous les "éléments du bouton de la barre de droite"
la source
comme Mark Lyons l'a dit, j'ai utilisé la même solution.
la source
Dans Xcode 11, vous pouvez faire glisser un bouton vers la barre de navigation pour créer votre bouton de barre.
la source