2012-10-20 3 views
0

Je développe une application iPhone qui a un contrôleur de vue principal (UITabBarController) avec UINavigationControllers dans chaque onglet. Le problème est que je ne peux pas modifier les données de TabBarItem (titre et image).Définir UITabBarItem UINavigationController à l'intérieur d'un UITabBarController

Voici comment je charge les viewcontrollers:

AroundViewController *aroundViewController = [[AroundViewController alloc] init]; 

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:aroundViewController]; 
[[navController navigationBar] setTintColor:[UIColor grayColor]]; 

UITabBarController *tabBarController = [[UITabBarController alloc] init]; 

NSArray *viewControllers = [NSArray arrayWithObjects:navController, nil]; 
[tabBarController setViewControllers:viewControllers]; 

[self presentViewController:tabBarController animated:YES completion:nil]; 

Je suis en train mis le tabbaritem dans init du aroundviewcontroller, mais je ne réussis pas. Je lisais et une solution a été, dans le init,

[self setTitle:@"whatever"]; 

Cela a fonctionné, mais je ne pouvais pas changer l'image.

Merci d'avance.

Répondre

0

je trouve une solution. Dans le viewWillAppear je mets:

[[[self navigationController] tabBarItem] setTitle:@"HELLO"]; 

qui fonctionne.

1

Utilisez l'instance tabBarItem de votre contrôleur de vue pour accéder directement à l'élément de la barre d'onglets!

[self.tabBarItem ....] 

[self.tabBarItem setImage: ...] 
[self.tabBarItem setTitle: ...] 

EDIT:

hm, procédez comme suit alors dans init ou méthode viewWillAppear:

UITabBarItem* tabBarItem = [[UITabBarItem alloc] initWithTitle:@"YourTitle" image:[UIImage imageNamed:@"YourImage.png"] tag:9]; 
    self.tabBarItem = tabBarItem; 
    [tabBarItem release]; 
+0

J'ai essayé dans le [setTitle [self tabBarItem]: @ "Cerca"] init aroundviewcontroller et ne fonctionnent pas – Juanjo

+0

Cependant [auto setTitle : @ "Cerca"] fonctionne mais je ne peux pas mettre ça pour l'image – Juanjo

+1

Salut encore une fois! Découvrez la réponse éditée. –

1

Avant de les UIViewControllers pour la UITabBarController vous pouvez le faire:

[navController.tabBarItem setImage:[UIImage imageNamed:@"MY-IMAGE"]]; 
[navController setTitle:@"MY-TITLE"]; 

NSArray *viewControllers = [NSArray arrayWithObjects:navController, nil]; 
[tabBarController setViewControllers:viewControllers]; 
Questions connexes