UITabBar apparence setSelectionIndicatorImage ne fonctionne pas lors du premier lancement d'iOS7
J'ai un personnalisé UITabBar et utiliser le code suivant dans l'AppDelegate:
- (void)tabBarController:(MainUITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
[self customizeTabBar];
}
- (void)customizeTabBar {
NSLog(@"*******customizeTabBar*******");
UIImage *tabBackground = [[UIImage imageNamed:@"unselectedtab"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
//Set background for all UITabBars
[[UITabBar appearance] setBackgroundImage:tabBackground];
//Set tint color for the images for all tabbars
[[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];
//Set selectionIndicatorImage for all tabbars
[[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"selectedtab"]];
}
- (void)tabBarController:(MainUITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed
{
NSLog(@"*******didEndCustomizingViewControllers*******");
}
C'est toute fine dans iOS5+ mais en 7 sur la première charge de la première TabBarItem l'élément indicateur est blanc et le bouton de semble avoir été sélectionné, mais le "selectedTab" de l'image n'est pas chargée.
Lorsque j'appuie sur un autre onglet le nouvel onglet est rouge et s'affiche correctement - comme le fait la première ou de n'importe quel onglet de la barre de l'élément sélectionné après cela - seulement il ne fonctionne pas lors du premier lancement.
customizeTabBar être appelé, mais l'image sélectionnée ne s'affiche pas lors du premier lancement.
didEndCustomizingViewControllers ne semble pas appelée à tous.
Cela ne fonctionne pas dans l'émulateur ou de l'appareil sur iOS7 - mais n'sur iOS5, 6.
Des idées?
Merci à l'avance.
Vous devez vous connecter pour publier un commentaire.
Réglage de l'indicateur de sélection de l'image de la barre d'onglets directement une fois de plus, à part de le faire via le apparence, a travaillé pour moi!
Je vois exactement le même problème. Voici mon didFinishLaunching
Voici comment j'ai installé la barre d'onglet:
Et enfin, c'est l'onglet de la barre de personnalisation bloc:
Comme indiqué, les "onglet" image n'est pas chargée sur le premier onglet. Cependant, j'ai ajouté la ligne suivante après [self.fenêtre makeKeyAndVisible] de sorte que mon onglet démarre avec un autre onglet ouvert, et la "onglet" image ne apparaître sur cet onglet:
Voici donc ma finalisé didFinishLaunching avec le subtil hack qui le fait fonctionner 🙂
ok.
pas le meilleur de bugs mais bon ont à présenter.
Supprimer la personnalisation de code dans l'appdelegate et dans les projets xib fichier (c'est un vieux projet) sur la TabBars attributs de l'inspecteur (en utilisant xcode 5) - ajouter l'onglet barres d'arrière-plan et la sélection des images.
Cela fonctionne pour ios7 sans le besoin pour la personnalisation de code dans l'appdelegate.
Pour pré iOS5 + 6 (cette application prend en charge uniquement 5+) mais nous avons encore besoin du code j'ai donc ajouté une façon simple de vérifier pour la version et gardé le code est:
Je pense que j'ai aussi eu le même problème lors de mon design pour la nouvelle Application iOS 7!!
iOS 7 a été construit plus des trucs différents que nous avons tous été utilisés à des choses différentes.
Ici que j'ai compris que nous avons tous été en utilisant des story-boards, et ont été incapables d'intégrer les Enchaîne dans notre Code! 🙂
Je choisis donc d' de ne pas salir avec le code, après j'ai essayé la plupart de tous les StackOverFlow Réponses au sujet de cette! 🙂 Parce que, pourquoi vous voulez faire, quand vous avez donné un Goody Bonne Interface Builder (IB) et Histoire d'Embarquement Outil?
Question:
Lorsque nous avons mis notre Onglet Sélectionné, l'Image, l'image de fond spécialement pour la barre d'onglets, il n'a pas montre de quel onglet est sélectionné avec l'image que nous avons défini dans notre code...???
Solution
Suivantes sont les captures d'écran de mon StoryBoard Paramètres que j'ai fait pour résoudre ce problème!!!!
Sélectionnez votre TabBarController à partir de votre document via panneau plan:
Définir les paramètres de la Barre d'onglets du Panneau d'Utilitaires:
Ensuite votre Programme est mis en place à la course! Il sait maintenant que le premier onglet est sélectionné lors de l'Application montre d'abord le Premier Onglet de la Vue et aussi de l'image qui doit être indiqué pour tous les onglets de la Barre des indicateurs lorsque chacun d'entre eux sont sélectionnés! 🙂
espère que vous avez tous eu une idée!!!
Si je vous ai aidé, je suis Contente!!!!!
Mais si j'ai perdu votre Temps, je suis Désolé!!! 🙁
Mais croyez-moi, Cela a fonctionné moi comme un charme!!!