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. p>
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. p>
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. P>
4 Réponses :
Utiliser Alternativement dans iOS 7, vous pouvez définir la propriété uibarstyleblackopaque code> est obsolète. p>
uibarstyleblack code> à la place. p>
BartinColor Code> sur Noir. P>
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]];
pour: - iOS 7 pour: - iOS 7 p> pour iOS 6: - 320 x 44 Taille de l'image de
Pour iOS 7: - 320 x 64 Taille de l'image P> p>
Merci d'avoir posté ceci. Cela a vraiment aidé ... merci!
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]; }
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