如何在代码中设置iPhone标签栏图标?

时间:2010-03-15 18:14:21

标签: iphone objective-c cocoa-touch uikit

我对几个不同的视图使用相同的ViewController。

在为特定视图实例化ViewController时,是否可以通过代码轻松指定标签栏图标?

4 个答案:

答案 0 :(得分:25)

yourViewController.tabBarItem = [[UITabBarItem alloc]
initWithTitle:NSLocalizedString(@"Name", @"Name")
image:[UIImage imageNamed:@"tab_ yourViewController.png"]
tag:3];

viewControllers被添加到标签栏,因此应该在标签栏变为可见之前设置图像和名称(appDelegate,如果他们在应用程序启动时那样)。之后,您可以使用上面的代码从该viewController中的loadView或viewDidAppear更改图标和文本。

答案 1 :(得分:1)

是。您的UITabBar有一个名为items的属性,该属性是每个标签栏项的UITabBarItem个数组。您可以使用UITabBarItem构造函数创建–initWithTitle:image:tag:以使用您自己的图像,或使用–initWithTabBarSystemItem:tag:构造函数创建系统图像。

答案 2 :(得分:1)

您也可以在AppDelegate中执行此操作,方法是声明UITabBarController iVar并将其指向应用程序tabBarController。您可以使用items数组访问各个标题。和setTitle

@synthesize tabBarController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    self.tabBarController = (UITabBarController*)self.window.rootViewController;
    NSArray* items = [self.tabBarController.tabBar items];
    [[items objectAtIndex:0] setTitle:@"Home"];
    [[items objectAtIndex:1] setTitle:@"Cool"];
    [[items objectAtIndex:2] setTitle:@"Stuff"];
    [[items objectAtIndex:3] setTitle:@"Settings"];
    return YES;
}

答案 3 :(得分:0)

正确的方法是:在viewDidLoad

中添加以下行
    [self.tabBarItem setImage:[UIImage imageNamed:@"<Image Name>"]];

查看在UITabBarController

中设置的控制器