如何使用UITabbarsystemitem设置标题

时间:2013-04-25 08:58:27

标签: ios objective-c uitabbaritem

我只是想知道如何使用UITabBarSystemItem设置标签栏项目的标题?

我做了什么:

  

self.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:0];

所以要默认更改标题而不是“精选”(因为UITabBarSystemItemFeatured对象),我写道:

  

self.tabBarItem.title = @"Actu";

所以在我看来,我应该把“Actu”作为标题而不是“精选”。

但它没有任何改变,标题保持“特色”(默认标题)。

我也尝试过:

  

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

(因为此tabbaritem位于索引0处),但没有任何变化。

或者使用UITabBarSystemItem个对象可能无法进行此类修改?

我希望这很好解释:/

PS:对不起我的英文和其他任何错误,第一篇文章......:/

5 个答案:

答案 0 :(得分:4)

使用UITabBarItem初始化initWithTabBarSystemItem:tag:时,您无法在以后更改图片或标题属性。

来源:iOS Development Documentation

答案 1 :(得分:3)

您可以使用KVC。

[self.tabBarItem.setValue("YourTitle", forKey: "internalTitle")];

答案 2 :(得分:1)

实际上,您可以使用private API.

中的方法_setInternalTitle:
[self.tabBarItem setValue:@"Categories" forKey:@"internalTitle"];

预防措施:仅将其用于测试版本。

答案 3 :(得分:0)

你已写过:

  

...使用UITabBarSystemItem个对象无法进行此类修改...

那些titleimage属性设置为nil,因此他们将这些值存储在一些内部私有属性中。

文档也说:

  

-initWithTabBarSystemItem:tag:
  以后不能更改返回项目的标题和图像属性。

答案 4 :(得分:-3)

我意识到这是旧的,但也许这会帮助其他想要这样做的人。如上所示,从系统项创建tabBarItem。然后创建另一个tabBarItem,就好像您有一个自定义图标并从系统项复制该图像。

        UITabBarItem* systemItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:0];
        UITabBarItem* theItem = [[UITabBarItem alloc] initWithTitle:theNameIWantToUse image:systemItem.image tag:0];