Как изменить изображение и заголовок TabBarItem - PullRequest
2 голосов
/ 18 января 2011

Я работаю с tabBar Основанным приложением с контроллером навигации. В моем приложении я хочу изменить tabBarItem image и title. В момент нажатия на символ tabBarItem элемент управления переходит к методу viewWillAppear этого конкретного представления. В это время я хочу изменить image и title этого конкретного tabBarItem.

Я даю вот так, но не работает ...

Код:

tabItem = [[UITabBarItem alloc] initWithTitle:@"Colors" image:[UIImage imageNamed:@"Colors.png"] tag:9];

self.tabBarController.tabBarItem = tabItem;

Я уже установил tag value для этого представления 9.

Пожалуйста, помогите мне, как я могу изменить image и title этого конкретного tabbarItem.

1 Ответ

5 голосов
/ 18 января 2011

Существует небольшое заблуждение в том, что вы пытаетесь сделать.Прежде всего, UITabBarController не имеет свойства tabBarItem, которое вы пытаетесь установить.Но, даже если это так, в документах UITabBarController конкретно указано в отношении свойства tabBar UITabBarController:

Никогда не пытайтесь манипулировать самим объектом UITabBar, хранящимся в этом свойстве.Если вы попытаетесь это сделать, в представлении панели вкладок возникнет исключение.

Таким образом, способ изменить элементы - это , а не через сам UITabBar.В вашей ситуации UITabBar получает свои UITabBarItems от UIViewControllers, представленных каждой вкладкой.Это то, что вы контролируете.В частности, вы можете сделать следующее:

- (void)viewWillAppear:(BOOL)animated {
    /* Modifies the UITabBarItem used by a UITabBarController to represent this
     * UIViewController in the tab bar.
     */

    UITabBarItem* tabBarItem =  [[UITabBarItem alloc] initWithTitle:@"Colors" image:[UIImage imageNamed:@"Colors.png"] tag:9];
    self.tabBarItem = tabBarItem;
    [tabBarItem release];
}
...