设置UITabBar的标题

6
我正在在我的App Delegate中通过编程方式创建和添加UITabBarController。我的标签栏中有5个视图控制器,也就是5个视图。
我想从控制器中设置不同标签的标题。
请帮助我完成这个操作。
谢谢。
2个回答

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

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

这将把每个视图控制器的标题(在导航控制器顶部显示的标题)设置为tabBarItemTitles数组中匹配的标题。

如果您想设置tabBarItem中的文本,请执行以下操作:

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

for (UItabBarItem *item in self.items)
{
    item.title = [tabBarItemTitles objectAtIndex: [self.items indexOfObject: item]];
}

6

每个选项卡标签中显示的标题通常对应于相应ViewController的标题。

例如,如果我有一个包含五个选项卡的tabBarController,则表示我的tabBarController中有5个视图控制器。第一个选项卡的标题将是第一个视图控制器的标题属性,以此类推。换句话说,如果您已经这样做了,

[myFirstViewController setTitle:@"First"];

如果您想让某个标签的标题为“First”,可以采用以下方法:

通过获取 UITabBarItem(UIBarItem 的子类)并自己设置标题,您也可以直接操作标题。但通常只有在一个 viewController 的标题过长无法正常显示时才需要这样做。


1
那么如果我想使用UITabbarItem,我需要做什么呢?就像当我执行tabBarController.tabBarItem.title时......它不起作用。我如何获取所有5个选项卡的tabBarItem? - rkb
@rkbang:“myUITabBarController.tabBar.items”返回该选项卡栏的UITabBarItems的NSArray。 - Dave DeLong

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接