11
votes

Uitabbaritem image disparaissant lors de la sélection de xcode 6 bêta

Assez nouveau au développement, mais les bêtas Xcode me donnent un peu de mal de tête (Xcode 6 Beta 5 / iOS 8).

ont trouvé des réponses mais surtout relatives à Xcode 5 et sous.

Tout fonctionne bien, mais le contrôleur d'icône / vue sélectionné disparaît. Dans Xcode 5-4, les actifs d'image n'allaient même pas en donnant le message d'erreur suivant. Maintenant, ils font, mais le message d'erreur fonctionne toujours.

Capture d'écran:

Entrez la description de l'image ici

Cuicatalog: Nom d'actif invalide fourni: (NULL) 2014-08-12 15: 16: 26.521 THEAPP [5275: 3231837] Cuicatalog: Nom d'actif non valide fourni: (null) 2014-08-12 15: 16: 26.521 THERIPP [5275: 3231837] pourrait ne pas charger l'image "(null)" référencée d'une nib dans le paquet avec identifiant "YourCompnay.TheApp"

Je saisie mon cerveau en essayant de comprendre si ce sont mes connexions / images ou juste un bug bêta Xcode.

Def Besoin d'aide et une explication claire. ELI5.

Toute aide serait appréciée. Je n'arrive pas à trouver de rien trouver spécifiquement sur cette erreur.


2 commentaires

Comment organiser des images dans votre projet? Utilisez-vous ?xassets ou simplement les ajouter au paquet comme des ressources?


Je les ai actuellement dans .xassets.


8 Réponses :


15
votes

Je suis presque exactement le même endroit que vous. Comme vous, mes images d'onglet "non sélectionnées" apparaîtraient bien, mais pour mes images de tabulation sélectionnées, elles ne seraient pas présentes, et je n'aurais pas pu charger l'image null ... "Erreur.

J'avais cédé les images dans le scénario IB ... C'est peut-être ce que vous faisiez aussi. De toute façon, dans IB dans l'inspecteur des attributs pour l'Uitabbaritem, il existe deux champs différents. L'une est sous la section de barre d'onglets et elle est nommée image sélectionnée. L'autre est dans la section de la barre et elle est nommée image. Juste pour être clair (répartir mon premier paragraphe mais en termes d'IB), j'avais des images "valides" que j'avais sauvegardées dans mon fichier .xCassets attribués à chacune de ces champs image / sélectionné_Image (chaque image était légèrement différente de l'autre pour distinguer sélection). Celui que j'avais dans mon champ d'image apparaîtrait, et celui que j'avais dans mon champ d'image sélectionné ne serait pas.

Si je mettais le "bon" du champ d'image dans le champ d'image sélectionné, je voudrais toujours obtenir l'erreur, ce qui n'a pas de sens pour moi.

Cependant, si je ne mettez que mon image "non sélectionnée" dans l'élément de la barre -> champ d'image et laissé l'élément de la barre d'onglets -> Image sélectionnée vide, l'image unique serait utilisée dans les deux endroits et il serait mis en évidence bleu quand sélectionné. Cela ne m'a pas donné le changement d'image mineur que je voulais (comme mon commentaire sur Apple Docs for Bar Bouton Article a indiqué que je devrais avoir des" lignes plus épaisses "dans mon image pour l'élément sélectionné), cela me donne au moins une image pour l'onglet sélectionné. Espérons que cela vous aidera également.


5 commentaires

Cela a totalement travaillé. Je ne peux pas croire que c'était quelque chose d'aussi simple. Merci!


On dirait qu'un bug dans la bêta de Xcode 6.


Ceci est une solution de contournement mais pas une vraie solution. Je n'utilise pas .xcassets pour mes éléments de barre d'onglets, des noms de fichiers d'image, et le même problème existe: l'icône de la barre d'onglets sélectionnée, qui est une image valide, apparaît simplement en blanc lors de la sélection. Cela reste un problème à partir de Xcode 6.0.1.


Enregistré ma vie, il suffit de laisser non assigné le message sélectionné et il utilise l'image non sélectionnée appliquant la couleur de teinte sélectionnée. Soigné!


Mais cela ne résout pas le problème de la présentation d'une image en surbrillance / sélectionnée correcte dans Tabbar.



14
votes

La réponse de YJO-JO n'est pas une solution à ce problème. Il fabrique la barre d'onglets utilise l'image non sélectionnée pour les états normaux et sélectionnés, mais ne vous permet pas d'utiliser une image différente de l'état sélectionné, comme recommandé dans les documents de l'Apple.

Le bogue est que le champ "Image sélectionné" pour Les éléments de barre d'onglets dans des storyboards ne fonctionnent tout simplement pas, et c'est toujours un problème à partir de Xcode 6.0.1 - J'utilise des images directement incluses dans les ressources de mon application plutôt que dans la même question et je ressens le même problème. Les images existent dans le paquet de mon application, elles apparaissent dans la boîte déroulante lors de la modification de mon storyboard, et pourtant, je reçois le même ne pouvait pas charger l'image "(null)" ... code> Erreur, et une image sélectionnée vierge. p>

Ma solution consistait à ajouter ceci dans mon onglet Barre d'onglets ( Contrôleur d'affichage strong>) ViewWillappear code> Méthode: P>

[(UITabBarItem*)[[[self tabBar] items] objectAtIndex:n] setImage:[UIImage imageNamed:@"(unselected image file)"]];
[(UITabBarItem*)[[[self tabBar] items] objectAtIndex:n] setSelectedImage:[UIImage imageNamed:@"(selected image file)"]];


0 commentaires

-1
votes

Pour quelqu'un d'autre qui souffre des mêmes erreurs ennuyeuses: "Cuicatalog: Nom d'actif non valide fourni: (NULL) 2014-08-12 15: 16: 26.521 THEAPP [5275: 3231837] Cuicatalog: Nom d'actif non valide fourni: (NULL) 2014-08-12 15: 16: 26.521 THEApp [5275: 3231837] n'a pas pu charger l'image "(null)" référencée à partir d'une nib dans le paquet "... Essayez de sélectionner" Image "de la section" Article de barre "de l'inspecteur des attributs pour définir l'image. Je ne sais pas exactement quelle est la différence que la diffusion "image sélectionnée" de la section "Barre d'onglets" jette cette erreur et ne fonctionne pas.


1 commentaires

Il fonctionne en effet, assurez-vous que le nom de l'image correspond au nom du catalogue d'actifs. C'est un travail autour d'utiliser IB pour configurer UI



1
votes

ressemble à un bug in uikit, j'ai déposé un radar déjà.

dans l'ordre Pour que cela fonctionne cependant, vous devez ajouter manuellement des icônes à partir de votre code de contrôleur d'affichage. Il y a peu de choses à faire:

  1. Détecter quel uitabbaritem appartient à votre contrôleur d'affichage

    YOURVIEWCONTROLLER.M: xxx

    note autoavigationController , vous devriez juste auto S'il n'y a pas de contrôleur de vue de navigation Enveloppant votre contrôleur d'affichage régulier.

    1. Changer les icônes

      votreviewcontroller.m -awakefromnib: Fonction: xxx

      fonctionne pour moi, devrait fonctionner pour toi aussi. C'est un peu de hack, mais aussi élégant que possible.


0 commentaires

-1
votes

Voici la solution, cela a très bien fonctionné pour moi.

  1. Sélectionnez l'élément Système Tabbaritem and Set System: Image personnalisée et sélectionnée: vide en attributs Inspecteur
    1. aller à l'inspecteur d'identité et retirez le clavier qui indique une image

0 commentaires

0
votes

Je vois ce problème sur plusieurs versions de Xcode. Maintenant, sur 6.3 Beta 3, je l'ai finalement corrigé.

Dans mon cas, j'ai résolu ceci en faisant deux choses:

  1. Pour chaque barre d'onglets, dans Builder d'interface, supprimez le champ "Image sélectionné" (cela peut avoir été inutile).

    Entrez la description de l'image ici

    1. Cliquez avec le bouton droit de la souris sur votre storyboard et sélectionnez "Ouvrir comme -> Code source". Recherchez "Tabbaritem". Examinez chaque article. Ils devraient regarder quelque chose comme ceci:

      Entrez la description de l'image ici

      Dans mon cas, il y avait des éléments de tabbaritem en double / orphelin qui sont apparus hors de la place et avec des paramètres mauvais / anciens. Commenter tous les éléments qui ne correspondent pas à vos paramètres dans IB. Nettoyez et reconstruisez votre application et voyez si vous êtes réparé comme si j'étais.


0 commentaires

3
votes

Définition de sélectionnéImage dans les attributs d'exécution définis par l'utilisateur comme dans Cette réponse a travaillé pour moi. < / p>


0 commentaires

0
votes

Cliquez sur le tabbouttonitem et accédez à l'inspecteur des attributs. Vous verrez 2 sections: Barre d'onglets Article et barre. Vous avez probablement rempli le champ d'image sélectionné sous l'élément de barre d'onglets et le champ d'image sous l'élément de barre. Vous devez conserver la barre d'onglets onglet: image sélectionnée champ vide. Cela fonctionnera alors.


0 commentaires