如何在代码中设置iPhone标签栏图标?
问题描述:
我为几个不同的视图使用相同的ViewController。如何在代码中设置iPhone标签栏图标?
当为特定视图实例化ViewController时,是否有通过代码指定标签栏图标的简单方法?
答
yourViewController.tabBarItem = [[UITabBarItem alloc]
initWithTitle:NSLocalizedString(@"Name", @"Name")
image:[UIImage imageNamed:@"tab_ yourViewController.png"]
tag:3];
的viewControllers被添加到标签栏,所以在标签栏变得可见的形象和名称应设置(如果的appDelegate他们那里例如应用程序启动)。之后,您可以使用上面的代码来更改viewController中的loadView或viewDidAppear的图标和文本。
答
是的。您的UITabBar
有一个名为items
的属性,该属性是每个标签栏项目的UITabBarItem
s的数组。您可以使用–initWithTitle:image:tag:
构造函数创建一个UITabBarItem
以使用您自己的图像,或者使用–initWithTabBarSystemItem:tag:
构造函数来使用系统图像。
答
您也可以在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;
}
答
正确的方法是:在viewDidLoad中
[self.tabBarItem setImage:[UIImage imageNamed:@"<Image Name>"]];
以下行添加这被设置里面的UITabBarController
这完美地工作viewcontrollers。谢谢! – 2010-03-16 01:16:40
这在iOS 4.x中不起作用,并且您忘记释放内存 – Gargo 2012-09-05 09:44:45