MKMapview affectant l'apparence UINavigationBar et TabBar

J'ai un MKMapView dans un UIView. Jamais de problèmes jusqu'à iOS7. Mes colors pour UITabbar et UINavigationBars sont définies par le protocole UIAppearance.

Pour une raison quelconque, à chaque démarrage de MKMapView, tous mes tabbars et navbars sont réinitialisés, en ignorant le paramètre barTintColor de ma class d'apparence. Tous les autres parameters de UIAppearance semblent restr tels que les attributes title et les attributes barItem. Seul barTintColor s'éteint.

Encore une chose. Cela ne se produit que sur iPhone 4 et iPhone4S, pas sur iPhone 5. Cela n'arrive pas non plus sur le simulateur. N'a pas été un problème dans iOS6 du tout.

Je ne peux find aucune autre cause pour la réinitialisation. Je suis allé à travers et a commenté à peu près tous les events et cela n'a eu aucun effet de toute façon.

Si je supprime le contrôle MKMapView, aucune réinitialisation des colors. Si je continue à présenter une autre vue, tout à fait différente avec un MKMapView, encore une fois les colors réinitialisées.

Je cherche des idées de quoi d'autre à vérifier, quel genre de parameters ou de methods pourraient éventuellement provoquer ce comportement. Donnez-moi des choses à éliminer, je suis coincé.

Information additionnelle:

Maintenant, en pensant que cela peut être un bug. J'ai mis une ligne pour coder en dur la couleur de la barre de navigation à une couleur arbitraire dans ViewDidLoad juste pour voir ce qui se passe.

UINavigationBar *bar = self.navigationController.navigationBar; [bar setBarTintColor = [UIColor GreenColor]; 

Je mets une pause sur la ligne suivante. Inspecter la barre, la couleur semble être réglée.

Sur iPhone4 ou 4S, la barre ne devient pas verte. Sur l'iPhone5 et le simulateur, la barre devient verte.

Quelques autres articles que j'ai découverts. La couleur ne change pas. Il semble que la visibilité soit. Pourtant, la lecture de l'alpha de la couleur et de la barre renvoie 1.0 à la fois.

Donc la couleur est correcte.

La translucidité est oui.

Alpha est 1,0.

Et pourtant la barre est complètement claire, pas de couleur, pas de teinte.

Je pense que je vais classr cela officiellement comme un bug. J'ai fait un test viewController avec seulement un MKMapview. Pas de code, pas de délégué, pas d'annotations. Présenté cela à la place de mon controller approprié. La même chose est arrivée.

Ce dont j'ai besoin en ce moment, c'est une solution de contournement. Je ne peux pas dire ce qui change. Quand j'inspecte les propriétés de la barre de navigation, tout est correct. Couleur de teinte, translucidité, couleur de teinte de barre, valeur d'alpha. Autant que je sache, la chose devrait être affichée comme prévu.

Quelqu'un peut-il me dire d'autres propriétés ou methods qui pourraient rendre l'arrière-plan de la barre de navigation complètement transparent?

Après un peu plus de search, je vois qu'il y a des discussions dans les forums des développeurs et ce problème a été noté depuis un certain time. Je m'attends à recevoir une réponse que mon rapport de bug est un dupe. En attendant, je crois que j'ai trouvé une solution de contournement.

Ce que je suis venu avec une séquence de réglage

 self.navigationController.navigationBar.translucent = NO; self.tabBarController.tabBar.translucent = NO; 

lorsque la vue contenant un MKMapView est chargée, puis paramétrée YES dans viewDidAppear. J'ai mis à NON à nouveau sur viewWillDisappear. Ensuite, le viewController returnnant doit redevenir translucide dans son viewDidAppear.

J'ai utilisé une série de posts NSNotification dans les controllers de vue avec les maps. J'ai sous-classé mes controllers de navigation et la barre d'tabs pour les faire écouter la notification et répondre en basculant leur propre propriété de translucidité de barre.

Géré pour le faire. Avec une petite quantité de code, mais c'est énormément d'activité sans raison valable. Souhaiterait voir cela plus tôt ASAP.