7

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

我做了什么 :

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

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

self.tabBarItem.title = @"Actu";

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

但它什么也没改变,标题一直是“精选”(默认标题)。

我也试过:

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

(因为这个 tabbaritem 在索引 0 处),但没有任何变化。

UITabBarSystemItem或者也许使用对象不可能进行这样的修改?

我希望这已经足够解释了:/

PS:对不起我的英语和其他任何错误,第一次发帖……:/

4

5 回答 5

4

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

来源:iOS 开发文档

于 2013-04-25T09:10:32.720 回答
3

您可以使用 KVC。

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

于 2017-03-02T07:08:16.753 回答
1

你已经写过:

......这样的修改是不可能使用UITabBarSystemItem对象......</p>

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

文档还说:

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

于 2013-04-25T09:06:28.413 回答
1

实际上有可能,您可以使用_setInternalTitle:私有API 中的方法。

[self.tabBarItem setValue:@"Categories" forKey:@"internalTitle"];

注意:仅用于测试构建。

于 2016-08-13T08:26:49.863 回答
-3

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

        UITabBarItem* systemItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:0];
        UITabBarItem* theItem = [[UITabBarItem alloc] initWithTitle:theNameIWantToUse image:systemItem.image tag:0];
于 2015-04-13T18:00:57.710 回答