Как установить значок панели вкладок iPhone в коде? - PullRequest
15 голосов
/ 15 марта 2010

Я использую один и тот же ViewController для нескольких разных представлений.

При создании экземпляра ViewController для конкретного представления, есть ли простой способ указать значок панели вкладок с помощью кода?

Ответы [ 4 ]

25 голосов
/ 15 марта 2010
yourViewController.tabBarItem = [[UITabBarItem alloc]
initWithTitle:NSLocalizedString(@"Name", @"Name")
image:[UIImage imageNamed:@"tab_ yourViewController.png"]
tag:3];

viewControllers добавляются в панель вкладок, поэтому изображение и имена должны быть установлены до того, как панель вкладок станет видимой (например, appDelegate, если они присутствуют при запуске приложения).После этого вы можете использовать приведенный выше код, чтобы изменить значок и текст из loadView или viewDidAppear в этом viewController.

1 голос
/ 11 сентября 2012

Вы также можете сделать это в AppDelegate, объявив UITabBarController iVar и указав его на вкладке приложений Tab Bar Baront.Вы можете получить доступ к отдельным заголовкам, используя массив itemssetTitle.

@synthesize tabBarController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    self.tabBarController = (UITabBarController*)self.window.rootViewController;
    NSArray* items = [self.tabBarController.tabBar items];
    [[items objectAtIndex:0] setTitle:@"Home"];
    [[items objectAtIndex:1] setTitle:@"Cool"];
    [[items objectAtIndex:2] setTitle:@"Stuff"];
    [[items objectAtIndex:3] setTitle:@"Settings"];
    return YES;
}
1 голос
/ 15 марта 2010

Да. У вашего UITabBar есть свойство с именем items, которое представляет собой массив UITabBarItem s для каждого элемента панели вкладок. Вы можете создать UITabBarItem, используя конструктор –initWithTitle:image:tag:, чтобы использовать собственный образ, или конструктор –initWithTabBarSystemItem:tag:, чтобы использовать образ системы.

0 голосов
/ 14 октября 2016

Правильный путь: добавьте эту строку ниже в viewDidLoad

    [self.tabBarItem setImage:[UIImage imageNamed:@"<Image Name>"]];

для просмотра контроллеров, которые установлены внутри UITabBarController

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...