Je fais glisser un bouton Round Rect vers la position de l'élément de bouton de barre droit, et je mets une image sur le bouton Round Rect. Tout fonctionne bien, sauf l'avertissement "Style simple non pris en charge dans un élément de navigation". Même si je sélectionne le style de l'élément du bouton de la barre sur "Bordé", l'avertissement est toujours là. Quel est le problème avec Xcode 4.2? Merci d'avance!
Ps. J'ai personnalisé de nombreux éléments de bouton de barre avec le bouton Round Rect, parfois Xcode 4.2 n'affiche qu'un seul avertissement sur un élément de bouton de barre, parfois des avertissements sur tous les éléments de bouton de barre.
Réponses:
J'ai pu supprimer ces erreurs en éditant manuellement les fichiers du storyboard et en trouvant l'entrée style offensante = "plain" sur les éléments Bar Button dans l'
<navigationItem>
élément.Changé de:
<barButtonItem key="rightBarButtonItem" style="plain" id="juB-DL-F9i">
À:
<barButtonItem key="rightBarButtonItem" id="juB-DL-F9i">
Cela a effacé les avertissements ... vrai ou faux.
Cela peut être un hack formidable et le plus gros problème est que je ne l'ai pas causé ou supprimé les éléments de bouton de barre invisibles du document global. C'était après avoir parcouru tous les éléments un par un et découvert que certaines barres de navigation étaient vides (sans enfants) et se produisaient probablement avec la grande quantité d'héritage de copier-coller (cmd + c | v) et de ne pas utiliser de duplication (cmd + d) pour construire l'interface. Bien que la cause source n'ait pas été causée par la racine, le problème était que les éléments de barre ne s'affichaient pas dans le document «vue d'ensemble» à corriger. Le comportement d'Interface Builder me semble parfois nuancé et un conteneur vide où il devrait y avoir quelque chose dans une vue en plan est une odeur. Eh bien, c'est à moi maintenant. Parfois, la suppression du nœud incriminé et la reconstruction corrigent les problèmes les plus étranges.
AVERTISSEMENT: sauvegardez vos storyboards avant d'essayer ceci ... le contrôle de version est votre ami ... Je ne prends aucune responsabilité lorsque votre storyboard est complètement arrosé et ne compilera pas. Tout ce que vous obtiendrez est un "Je vous l'ai dit!" J'ai appris à la dure à quelques reprises, mais un contrôle de source diligent m'a évité un mal de tête.
EDIT: mettre des crochets dans les blocs de code
la source
style="plain"
du code source du storyboard. Donc, pour moi, cette suggestion de Hunter me semble légitime.Si vous cliquez sur l'avertissement et que vous n'allez pas à l'élément de navigation incriminé, procédez comme suit. (représentation visuelle de la réponse de Hunter avec une méthode plus sûre à partir des commentaires ajoutés)
Dans le navigateur de fichiers, faites un clic droit sur le storyboard et sélectionnez
Open As Source Code
Dans la page de code source, recherchez "plain" et recherchez celui qui est attaché à un élément de navigation.
Pour obtenir le nom de la vue, placez "scène" dans la barre de recherche et cliquez sur la flèche de recherche arrière pour rechercher la première instance de cette balise au - dessus du
navigationItem
Voici le nom de votre scène, vous pouvez maintenant changer la vue de votre Storyboard
Interface Builder - Storyboard
avec la méthode du clic droit décrite ci-dessus, puis sélectionner la scène dans le menu de la scène et l'élément de barre à l'intérieur.Accédez à l'inspecteur des attributs et changez le style de
Plain
àBordered
la source
J'ai arrêté l'avertissement concernant le style simple en fouinant dans le contour du document. Cela montrait mon élément de navigation, et dans ces 2 éléments de bouton de barre, et dans chacun de ceux-ci un bouton. Le paramètre incriminé était sur l'élément du bouton de la barre. Dans son inspecteur d'attributs, j'ai changé le style de Plain à Done et l'avertissement a disparu. Remarque: j'utilise XCode 5.
la source
Si vous utilisez un storyboard, cliquez sur l'avertissement et cela devrait vous amener à l'élément de navigation incriminé (j'en avais deux pour le problème, l'un m'a emmené là-bas, l'autre pas) - changez le style et nettoyez le projet.
la source
backBarButtonItem
leftBarButtonItem
etrightBarButtonItem
sont desUINavigationItem
objets. Il n'y a pas destyle
propriétéUINavigationItem
, c'est donc la raison de l'avertissement. Vous devez définir les barButtons par programme:iOS 4:
UIButton *bt=[UIButton buttonWithType:UIButtonTypeRoundedRect]; [bt setFrame:YourFrame]; //[bt setImage:[UIImage imageNamed:@"backBT"] forState:UIControlStateNormal]; [bt addTarget:self action:@selector(popViewController:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *leftButton=[[UIBarButtonItem alloc] initWithCustomView:bt]; self.navigationItem.leftBarButtonItem=leftButton;
Pour iOS 5+:
Lisez la section «Personnalisation de l'apparence» de la référence UIBarButtonItem .
la source
Dans la barre de navigation, essayez d'utiliser UIBarButtonItem au lieu du bouton Round rect et définissez une image pour celui-ci.
la source
Dans mon cas, c'était une image d'une flèche arrière, qui était réglée sur "Plain".
Le message d'erreur semble faire référence à tous les éléments de la barre de navigation.
la source
Une fois que vous êtes sûr que tous vos boutons de barre dans le storyboard sont définis sur autre chose que simple, assurez-vous de faire un commit git et de supprimer les données dérivées. J'ai passé une éternité à essayer de comprendre pourquoi le problème ne se résolvait pas, et la suppression du dossier de données dérivé l'a corrigé pour moi.
la source