2017-08-12 1 views
4

J'ai lu un tas de questions connexes, j'ai essayé ce qu'ils ont dit, rien ne fonctionne vraiment. Pas certain de pourquoi. Donc, j'ai 3 différents UIStoryboards. Le premier est le Storyboard Auth qui gère Login/Register et il y a une référence de storyboard au storyboard de la deuxième Storyboard - Tab. Ce storyboard contient 5 autres références de storyboard qui chargeraient ses contrôleurs de vue séparés.La barre d'onglets n'affiche pas les icônes?

Mon problème est que les icônes n'apparaissent pas une fois que l'utilisateur est connecté. Je configure une couleur personnalisée du premier contrôleur de vue dans le UITabViewController juste pour s'assurer qu'il charge. Cela fait.

J'ai essayé de régler toutes les images/icônes pour les rendre comme "Original", ne fonctionnait pas. J'ai mis une image de système, juste pour voir si c'est le problème, ils ne sont pas montrés. Il convient également de mentionner que les icônes sont affichées dans le storyboard, mais lorsqu'elles sont compilées, elles ne sont nulle part visibles dans le simulateur.

Qu'est-ce que je fais mal?

enter image description here

PS: J'ai changé la couleur de teinte de la barre d'onglets, juste pour tester, et il fonctionne. Donc, le problème n'est pas là ...

+0

Avez-vous installé UITabViewController après la connexion avec succès? – Hitesh

+0

@Hitesh - Une fois que l'utilisateur s'est connecté avec succès, une section est exécutée dans 'UITabBarController'.Il ne plante pas et je vois ma vue personnalisée, donc ce n'est pas le problème. – Dani

+0

Quelles sont les extensions de fichier? – DeyaEldeen

Répondre

3

Je joins images connexions décrivant:

  1. Connect TabBar Controller à vos cinq contrôleurs Voir

  2. Pour chaque contrôleur Affichage, sélectionnez tout View Controller -> Aller à l'éditeur dans les options Xcode en haut -> Intégrer dans -> Contrôleur de navigation

  3. Sélectionnez la barre inférieure dans le navigateur de navigation -> ouvrir l'inspecteur d'attributs dans Utilitaires -> indiquez le titre et l'image mis en évidence dans l'image

enter image description here

Navigation de Connexion/Inscription à l'écran TabBar: indiquer l'ID Storyboard à TabBarController par exemple. "TabBarController" et créez l'instance TabBarController à l'aide de l'ID Storyboard du Storyboard correspondant.

Swift 3

func navigateToTabBar() { 
    let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil) 
    let nextViewController = storyBoard.instantiateViewController(withIdentifier: "TabBarController") as UIViewController 
    self.present(nextViewController, animated:true, completion:nil) 
} 
0

Connectez vos cinq contrôleurs de vue avec le contrôleur de navigation, puis interfacer le contrôleur de navigation au contrôleur de la barre d'onglets.

+0

J'ai fait ça. Chacun de ces 5 'UIViewControllers' est intégré dans le contrôleur de navigation, puis je définis un ID de référence pour chacun de ces contrôleurs de navigation et le place comme référence de storyboard à partir du' UITabBarController' – Dani

+0

Avez-vous défini un élément de barre d'onglets pour chaque contrôleur de navigation? –

+0

Je l'ai fait. J'ai fini par recréer tout ça en ce moment, rien ne semble fonctionner pour une raison quelconque ... – Dani

0

Pleasr Essayez de créer programatically..code est mentionné ci-dessous

- (void)customizeTabBar{ 
UITabBar *tabBar = tabBarController.tabBar; 
[tabBar setBarTintColor:TABBAR_COLOR]; 

}

- (void)customizeBarButtonsItems:(NSArray*)array{ 
[[array objectAtIndex:0] setImage:[[UIImage imageNamed:@"MusicNormal"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[[array objectAtIndex:0] setSelectedImage:[[UIImage imageNamed:@"MusicSelected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 

[[array objectAtIndex:1] setImage:[[UIImage imageNamed:@"TrimNormal"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[[array objectAtIndex:1] setSelectedImage:[[UIImage imageNamed:@"TrimSelected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 

[[array objectAtIndex:2] setImage:[[UIImage imageNamed:@"RecordNormal"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
[[array objectAtIndex:2] setSelectedImage:[[UIImage imageNamed:@"RecordSelected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 

}

tabBarController = (UITabBarController *)self.window.rootViewController; 
tabBarController.tabBar.translucent=false; 
[self customizeTabBar]; 
[self customizeBarButtonsItems:tabBarController.tabBar.items]; 
for(UITabBarItem * tabBarItem in tabBarController.tabBar.items){ 
    //tabBarItem.title = @""; 
    tabBarItem.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0); 
}