我有一个通过IB创建的TabBar,我选择了“创建新项目” - > “标签栏应用程序”。有没有办法让我通过代码访问其中一个TabBarItem进行自定义?
在我看来,像:
[[self.tabBarController.tabBar.items objectAtIndex:0] setTitle:@"Button one"];
应该将该项目的标题设置为“按钮一”,但它不会。标题本身不是问题(我可以通过IB设置它),但是添加一个Icon似乎是。
总而言之,我真正想知道的是:有没有办法将一个Icon添加到通过IB创建的TabBarItem?
解: 在第一个视图中添加viewDidLoad,在启动应用程序时自动加载:
UITabBarController *tb = [self tabBarController];
[[tb.tabBar.items objectAtIndex:1] setTitle:@"Title"];
让我设置第二个按钮的标题(objectAtIndex:1)。我也能够以相同的方式设置图像,这也适用于按钮1(objectAtIndex:0)和3(objectAtIndex:2)。
答案 0 :(得分:1)
您应该能够在TabBarItems上设置图像和标题属性:
UITabBarItem *item = (UITabBarItem *)[tabBarController.tabBar.items objectAtIndex:0];
item.image = [UIImage imageNamed:@"home.png"];
不要忘记UITabBar仅使用您设置的图像中的alpha值,因此如果图像中没有Alpha通道,则在标签栏项目上设置图像时可能看不到任何内容
答案 1 :(得分:1)
将它添加到其中一个tabBar viewControllers的viewDidLoad:方法中,它应该可以工作:
- (void)viewDidLoad
{
[super viewDidLoad];
//Get the tabBarItem
UITabBarItem *tbi = [self tabBarItem];
//Give it a lable
[tbi setTitle:@"Title A"];
//create a image from a file for the tabBar
UIImage *i = [UIImage imageNamed:@"NiceImage.png"];
//and put it on the tabBar
[tbi setImage:i];
}
答案 2 :(得分:0)
我从未通过IB创建标签栏(总是通过代码),但设置标题和图标我使用
controller.title = @"Controller";
controller.tabBarItem.image = [UIImage imageNamed:@"image.png"];
其中controller
是添加到UIViewController
的{{1}}'数组中的viewControllers
。