Lorsque mon application est chargée, je souhaite la modifier sur l'un des onglets en fonction d'un paramètre enregistré défini par l'utilisateur lors de la dernière exécution de l'application. Je suis capable de changer l'image lorsque l'utilisateur clique sur l'onglet qui exécute la méthode ViewDidLoad de viewcontroller de cet onglet. voir ci-dessous:iPhone, UITabBarItem: modifier dynamiquement l'image d'une barre d'onglets lorsque l'application démarre
UITabBarItem *tabItem;
if (condition = YES) {
tabItem = [[UITabBarItem alloc] initWithTitle:@"Filter" image:[UIImage imageNamed:@"filter plus.png"] tag:self.view.tag];
}
else {
tabItem = [[UITabBarItem alloc] initWithTitle:@"Filter" image:[UIImage imageNamed:@"filter.png"] tag:self.view.tag];
}
self.navigationController.tabBarItem = tabItem;
[tabItem release];
[super viewDidLoad];
Mais je suis incapable de comprendre comment accéder et de modifier l'UITabBarItem de cet onglet dans le contrôleur de vue racine de l'application lors de son chargement. Voir la méthode viewdidload du contrôleur de vue racine ci-dessous. Quand cela n'a pas fonctionné j'ai essayé plusieurs autres manières d'accéder et de changer le uitabbaritem mais rien n'a fonctionné. J'ai essayé de créer IBOutLets dans le contrôleur de vue racine à UITabBarItem et UINavigationController.
// tb is an iboutlet to the UITabBarItem
self.tb = tabItem;
// nc is an iboutlet to the UINavigationController
self.nc.tabBarItem = tabItem;
en vain. Une idée de comment faire cela?
Le principal avantage est qu'il facilite la lecture du code. –