iPhone - Изменение заголовка UITabBarItem после настройки в разделе «Больше» - PullRequest
0 голосов
/ 27 декабря 2010

У меня есть UITabBar с 8 предметами в моем xib. Я связал эти UITabBarItems в своем коде, поэтому я делаю локализацию внутри метода viewDidLoad моего главного окна UITabBarController. например. tabBarItem1.title = NSLocalizedString (@ "TAB1");

Моя проблема в том, что после того, как я изменил порядок в разделе More-Configure, элементы, которые не были спереди, сохраняют свой оригинальный нелокализованный заголовок из файла .xib.

Любая помощь ??

Ответы [ 4 ]

1 голос
/ 07 октября 2014

Вы можете легко установить все значки UITabBar. Это можно сделать с помощью метода viewWillAppear:

[[self.tabBarController.tabBar.items objectAtIndex:0] setTitle:NSLocalizedString(@"Aitul", @"comment")];

[[self.tabBarController.tabBar.items objectAtIndex:1] setTitle:NSLocalizedString(@"Aitor", @"comment")];

[[self.tabBarController.tabBar.items objectAtIndex:2] setTitle:NSLocalizedString(@"Eibar", @"comment")];

[[self.tabBarController.tabBar.items objectAtIndex:3] setTitle:NSLocalizedString(@"Primeran", @"comment")];
0 голосов
/ 28 декабря 2010

Я указываю решение. В идеале можно изменить заголовок tabBarItem на didEndCustomizingViewControllers .

self.selectedIndex = 3;
[self.selectedViewController.tabBarItem setTitle:@"SSDDD"];

Это работает, но если я использую нестатическую строку, например, метод NSLocalizedString (), это не так. Также работает для локализованных строк, которые были в 4 видимых элементах вкладки. Кажется очень странным.

0 голосов
/ 04 октября 2013

Я решаю эту проблему за 2 шага::)

Сначала нажмите TabBarItem из UITabBar в раскадровке или .xib.Then, откройте инспектор атрибутов и в разделе Tab tab Item, выберите Identifier to CUSTOM. Затем установите Tag (в моем случае: 0, 1, 2). Наконец, подключите выход этой TabBar к ViewController.В моем случае:

@property (weak, nonatomic) IBOutlet UITabBar *tabBar;

Во-вторых, откройте ViewController.m в viewDidLoad: метод

for (UITabBarItem *tabBarItem in [self.tabBar items]){
    NSInteger tag = tabBarItem.tag;
    switch(tag){
               case 0:
            [tabBarItem setTitle:@"Title 1"];
            break;
               case 1:
            [tabBarItem setTitle:@"Title 2"];
            break;
               case 2:
            [tabBarItem setTitle:@"Title 3"];
            break;
}

P / S: Мои навыки написания английского плохие.Извините, если вам неудобно

0 голосов
/ 27 декабря 2010

В каждом контроллере представления можно задать им название, например,

[[self tabBarItem] setTitle:NSLocalizedString(@"TAB1")];

, что может помочь избежать путаницы в вашем приложении.Я думаю, что tabBarItem - это одна из вещей, на которую вы можете просто сослаться (например, установить заголовок в контроллера навигации).

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