我对几个不同的视图使用相同的ViewController。
在为特定视图实例化ViewController时,是否可以通过代码轻松指定标签栏图标?
答案 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
中设置的控制器