设置UITabBar的标题

rkb*_*rkb 5 iphone objective-c uitabbarcontroller uitabbar ios

我正在UITabBarController我的App Delegate中以编程方式创建和添加.

我的标签栏中有5个视图控制器,意味着5个视图.

我想从控制器中设置不同选项卡的标题.

请帮我做.

谢谢

Dan*_*enc 14

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

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

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

如果您尝试在tabBarItem中设置文本,请执行以下操作:

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

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


Dav*_*ong 6

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

例如,如果我有一个带有五个选项卡的tabBarController,那么这意味着我的tabBarController中有5个视图控制器.第一个选项卡的标题将是第一个视图控制器的title属性等.换句话说,如果你这样做了,

[myFirstViewController setTitle:@"First"];
Run Code Online (Sandbox Code Playgroud)

然后"第一个"将成为标签的标题.

您还可以通过检索UITabBarItem(UIBarItem的子类)并自行设置标题来直接操作标题,但这通常仅在您的一个viewController标题太长而无法正确显示时才需要.