无法设置标签栏图标 iOS
Can't set tab bar icon iOS
我有一个带标签栏的 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];
代码行上,我收到警告 "Expression Result unused" 并且选项卡项既没有获得我设置的图像也没有文本。
我做错了什么?
您已经初始化了您的朋友物品——它已经制作完成,您正在取回它。您需要删除 initWithImage 行并更改标题和图像之类的属性,例如:
[friendItem setImage:@"myImage"];
您可以对标题和所选图像执行相同的操作。这个有用吗?
您无法通过这种方式访问 UITabBar
中的项目。基本上,一旦创建了 UITabBarItem
,它就是 read-only。 (唯一的例外是 badgeValue
、selectedImage
和标题定位。)
此外,您收到警告是因为 init...
方法 returns 一个您未使用的值。在现有 object 上调用 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
。因此,您需要访问您要修改的 UIViewController
的 tabBarItem
属性。
我有一个带标签栏的 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];
代码行上,我收到警告 "Expression Result unused" 并且选项卡项既没有获得我设置的图像也没有文本。
我做错了什么?
您已经初始化了您的朋友物品——它已经制作完成,您正在取回它。您需要删除 initWithImage 行并更改标题和图像之类的属性,例如:
[friendItem setImage:@"myImage"];
您可以对标题和所选图像执行相同的操作。这个有用吗?
您无法通过这种方式访问 UITabBar
中的项目。基本上,一旦创建了 UITabBarItem
,它就是 read-only。 (唯一的例外是 badgeValue
、selectedImage
和标题定位。)
此外,您收到警告是因为 init...
方法 returns 一个您未使用的值。在现有 object 上调用 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
。因此,您需要访问您要修改的 UIViewController
的 tabBarItem
属性。