通过代码将标题/图标等设置为在IB中创建的TabBarItem?

时间:2011-09-06 13:18:57

标签: objective-c ios uitabbarcontroller uitabbaritem

我有一个通过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)。

3 个答案:

答案 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