无法设置标签栏图标iOS

时间:2015-01-29 18:43:18

标签: ios uiimage uitabbarcontroller uitabbar

我有一个带标签栏的UITabBarController(当然),我试图使用以下代码将自定义图像设置到标签栏上的标签:

- (void)viewDidLoad
{
    [super viewDidLoad];


    UITabBar *menuTab = self.tabBarController.tabBar;

    UIImage *friendImage = [UIImage imageNamed:@"friends_tab@2x.png"];
    UIImage *friendImageSelected = [UIImage imageNamed:@"friends_tab_selected@2x.png"];

    UITabBarItem *friendItem = [menuTab.items objectAtIndex:1];
    [friendItem initWithTitle:@"Friends" image:friendImage selectedImage:friendImageSelected];

}

[friendItem initWithTitle:@"Friends" image:friendImage selectedImage:friendImageSelected];代码行,我收到警告"表达结果未使用"并且标签项既不会得到我设置的图像也不会得到文本。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您无法以UITabBar方式访问这些项目。基本上,一旦UITabBarItem被创建,它就是只读的。 (唯一的例外是badgeValueselectedImage和标题定位。)

此外,您收到了警告,因为init...方法会返回您未使用的值。在现有对象上调用init...方法是错误的。

相反,你需要做的事情是这样的:

- (void)viewDidLoad {
    [super viewDidLoad];
    UIViewController *vc            = self.viewControllers[1];
    UIImage *friendImage            = [UIImage imageNamed:@"friends_tab"];
    UIImage *friendImageSelected    = [UIImage imageNamed:@"friends_tab_selected"];
    UITabBarItem *friendItem        = [[UITabBarItem alloc] initWithTitle:@"Friends" image:friendImage selectedImage:friendImageSelected];
    vc.tabBarItem                   = friendItem;
}

请注意,我创建了 完全 UITabBarItem。当您拥有UITabBarController时,您无法以与自己创建和管理的方式相同的方式访问其UITabBar。因此,您需要访问要修改的tabBarItem的{​​{1}}属性。

答案 1 :(得分:-1)

您已经初始化了您的朋友项目 - 它已经制作好了,您正在检索它。您需要删除initWithImage行并更改标题和图像属性,例如:

[friendItem setImage:@"myImage"];

您可以对标题和所选图像执行相同操作。这有用吗?