我只是想知道如何使用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:对不起我的英文和其他任何错误,第一篇文章......:/
答案 0 :(得分:4)
使用UITabBarItem
初始化initWithTabBarSystemItem:tag:
时,您无法在以后更改图片或标题属性。
答案 1 :(得分:3)
您可以使用KVC。
[self.tabBarItem.setValue("YourTitle", forKey: "internalTitle")];
答案 2 :(得分:1)
实际上,您可以使用private API.
中的方法_setInternalTitle:
[self.tabBarItem setValue:@"Categories" forKey:@"internalTitle"];
预防措施:仅将其用于测试版本。
答案 3 :(得分:0)
你已写过:
...使用
UITabBarSystemItem
个对象无法进行此类修改...
那些title
和image
属性设置为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];