2010-03-15 11 views

Respuesta

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

Los viewControllers se agregan a la barra de pestañas, por lo que la imagen y nombres deben establecerse antes de la barra de pestañas se hace visible (AppDelegate si están allí en la puesta en aplicación, por ejemplo). Después de eso, puede usar el código anterior para cambiar el ícono y el texto de loadView o viewDidAppear dentro de viewController.

+1

Esto funcionó a la perfección. ¡Gracias! –

+0

esto no funciona en iOS 4.x y olvidaste liberar la memoria – Gargo

1

Sí. Su UITabBar tiene una propiedad llamada items, que es una matriz de UITabBarItem s por cada elemento de la barra de pestañas. Puede crear un UITabBarItem usando el constructor –initWithTitle:image:tag: para usar su propia imagen, o el constructor –initWithTabBarSystemItem:tag: para usar una imagen del sistema.

1

También puede hacer esto en AppDelegate, declarando un UITabBarController iVar y apuntándolo a la aplicación tabBarController. Puede acceder a los títulos individuales usando la matriz items. y el 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; 
} 
0

forma correcta es: Añadir esta por debajo de la línea de viewDidLoad

[self.tabBarItem setImage:[UIImage imageNamed:@"<Image Name>"]]; 

a viewcontrollers que se establecen en el interior UITabBarController

Cuestiones relacionadas