11
votes

IOS 6 Barre de navigation Couleur en Xcode 5

J'avais passé quelques mois à développer une application pour iOS 6 lorsque je me suis mis à jour à Xcode 5. J'ai mis à jour l'application pour s'adapter au style iOS 7, lorsque j'ai décidé d'exécuter à nouveau l'application sur iOS 6.1. J'ai trouvé que mon barreau de navigation précédemment noire était devenu blanc.

J'ai échangé mon storyboard pour être considéré comme "iOS 6.1 et antérieur", et j'ai constaté que la couleur de la barre de navigation était blanche, même s'il était réglé sur "Barre de navigation noire opaque" dans les métriques simulées.

Des idées sur la façon de résoudre ce problème? J'ai déjà essayé de définir manuellement les meilleures barres de la vue enfant à la "barre de navigation noire opaque". Cela modifie la couleur de la barre de navigation pour l'enfant à apparaître noir sur le storyboard, mais n'a aucun effet sur l'application lorsqu'il est exécuté sur le simulateur.


0 commentaires

4 Réponses :


0
votes

uibarstyleblackopaque est obsolète.

Utiliser uibarstyleblack à la place.

Alternativement dans iOS 7, vous pouvez définir la propriété BartinColor sur Noir.


0 commentaires

15
votes

On dirait que je devais faire était de vérifier si l'appareil exécutait une version inférieure à iOS 7, puis définissez

[[[self navigationController] navigationBar] setTintColor:[UIColor blackColor]];


0 commentaires

0
votes

pour: - iOS 7 xxx

pour: - iOS 7 xxx

pour iOS 6: - 320 x 44 Taille de l'image de
Pour iOS 7: - 320 x 64 Taille de l'image


1 commentaires

Merci d'avoir posté ceci. Cela a vraiment aidé ... merci!



13
votes

Pour définir la couleur de la barre de navigation, j'ai procédé à ce qui suit:

if([self.navigationController.navigationBar respondsToSelector:@selector(barTintColor)])
{
    // iOS7
    self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:236.0/255.0 green:139.0/255.0 blue:23.0/255.0 alpha:1.0];
}
else
{
    // older
    self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:236.0/255.0 green:139.0/255.0 blue:23.0/255.0 alpha:1.0];
}


2 commentaires

Cela jette réellement un message d'erreur lorsqu'il est compilé et exécuté sur un périphérique IOS 6. Un meilleur moyen de déterminer la version iOS est la suivante: 'Si (étage (NsfoundationVersionNumber) <= NSFoundationVersionNumber_IOS_6_1) {// Ressources de charge pour iOS 6.1 ou antérieur} else {// Ressources de charge pour iOS 7 ou version ultérieure}' Voir ici: Link


Le code fonctionne sur iOS6, iOS6.1, iOS7 sans aucun problème. L'idée est de vérifier si la barre de navigation "réponditoselector" ... et c'est le moyen de la mettre en œuvre. Bien sûr, il y a beaucoup d'autres moyens de vérifier la version ... merci pour le lien