Настройка заголовка UITabBar - PullRequest
5 голосов
/ 16 июля 2009

Я создаю и добавляю UITabBarController программно в моем делегате приложения.

У меня в панели вкладок 5 контроллеров представления, что означает 5 представлений.

Я хочу установить заголовок разных вкладок из контроллера.

Пожалуйста, помогите мне сделать это.

Спасибо

Ответы [ 2 ]

14 голосов
/ 16 июля 2009
NSArray *tabBarItemTitles = [NSArray arrayWithObjects: @"Title1", @"Title2", @"Title3", nil];

for (UIViewController *viewController in self.viewControllers)
{
    viewController.title = [tabBarItemTitles objectAtIndex: [self.viewControllers indexOfObject: viewController]];
}

Это устанавливает заголовок каждого из контроллеров представления (заголовок, показанный вверху в контроллере навигации) к соответствующему заголовку в массиве tabBarItemTitles.

Если вы пытаетесь установить текст на вкладке BarItem, сделайте следующее:

NSArray *tabBarItemTitles = [NSArray arrayWithObjects: @"Title1", @"Title2", @"Title3", nil];

for (UItabBarItem *item in self.items)
{
    item.title = [tabBarItemTitles objectAtIndex: [self.items indexOfObject: item]];
}
5 голосов
/ 16 июля 2009

Заголовок, отображаемый для каждой вкладки в панели вкладок, обычно соответствует заголовку соответствующего ViewController.

Например, если у меня есть tabBarController с пятью вкладками, то это означает, что у меня есть 5 контроллеров представления в моем tabBarController. Заголовок первой вкладки будет свойством title первого контроллера представления и т. Д. Другими словами, если вы это сделали,

[myFirstViewController setTitle:@"First"];

тогда «Первая» будет названием вашей вкладки.

Вы также можете напрямую манипулировать заголовком, извлекая UITabBarItem (подкласс UIBarItem) и устанавливая заголовок самостоятельно, но обычно это необходимо только в том случае, если один из ваших заголовков viewController слишком длинный для правильного отображения.

...