Когда мое приложение загружается, я хочу изменить изображение на одной из вкладок, основываясь на сохраненных настройках, установленных пользователем при последнем запуске приложения. Я могу изменить изображение, когда пользователь нажимает на вкладку, которая выполняет метод ViewDidLoad этой вкладки viewcontroller. см. ниже:
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];
Но мне не удалось выяснить, как получить доступ и изменить UITabBarItem этой вкладки в корневом контроллере приложения при его загрузке. См. Метод viewdidload корневого контроллера представления ниже.
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];
}
// get the view controller of the tab I want to change
MyViewController *vc = [self.tabBarController.viewControllers objectAtIndex:2];
ft.tabBarItem = tabItem;
[tabItem release];
[super viewDidLoad];
Когда это не сработало, я пробовал несколько других способов доступа и изменения uitabbaritem, но ничего не получалось. Я попытался создать IBOutLets в корневом контроллере представления для UITabBarItem и UINavigationController.
// tb is an iboutlet to the UITabBarItem
self.tb = tabItem;
// nc is an iboutlet to the UINavigationController
self.nc.tabBarItem = tabItem;
безрезультатно. Есть идеи как это сделать?