2011-05-07 19 views

Respuesta

9

Es muy sencillo crear un UITabBar a través de la UITabBarController. El siguiente ejemplo debería funcionar dentro de su clase AppDelegate.

aplicación interfaz de delegado

En primer lugar, dentro de la interfaz, vamos a definir nuestra UITabBarController.

UITabBarController *tabBarController; 

App delegar la ejecución

Entonces, dentro método del archivo de implementación application:didFinishLaunchingWithOptions:, a continuación, vamos a inicializamos nuestro controlador de la barra de pestañas.

// Initialise our tab bar controller 
UITabBarController *tabBarController = [[UITabBarController alloc] init]; 

A continuación, debe crear los controladores de vista que desea agregar al controlador de la barra de pestañas. Tendremos que agregar algo de información en estos para establecer el título/icono de la pestaña, pero volveré a eso al final.

// Create your various view controllers 
UIViewController *testVC = [[TestViewController alloc] init]; 
UIViewController *otherVC = [[OtherViewController alloc] init]; 
UIViewController *configVC = [[ConfigViewController alloc] init]; 

Como los setViewControllers: animada: método requiere un conjunto de controladores de vista, añadiremos nuestros controladores de vista de una matriz y luego liberarlos. (A medida que el NSArray se retenerlos.)

// Put them in an array 
NSArray *viewControllers = [NSArray arrayWithObjects:testVC, otherVC, configVC, nil]; 
[testVC release]; 
[otherVC release]; 
[configVC release]; 

Después, simplemente proporcionar a la UITabBarController con la serie de controladores de vista y añadirlo a nuestra ventana.

// Attach them to the tab bar controller 
[tabBarController setViewControllers:viewControllers animated:NO]; 

// Put the tabBarController's view on the window. 
[window addSubview:[tabBarController view]];  

Por último, asegúrese de llamar [tabBarController release]; dentro de su método dealloc.

Vista Controlador Implementación

Dentro de cada uno de los controladores de vista, también querrá establecer el título y el icono de la pestaña en el método init de la siguiente manera:

// Create our tab bar item 
UITabBarItem *tabBarItem = [self tabBarItem]; 
UIImage *tabBarImage = [UIImage imageNamed:@"YOUR_IMAGE_NAME.png"]; 
[tabBarItem setImage:tabBarImage]; 
[tabBarItem setTitle:@"YOUR TITLE"]; 
+0

Cuando creo mi propio tabBarControllers programmatically, siempre creo un navigationController para cada pestaña y cada navigationController se inicializa con un rootViewController. Me parece que en tu ejemplo no es posible crear una pila de navegación ya que no tienes un navigationController, pero nunca intenté codificarlo así. –

+0

@ Wolfgang Supongo que depende de si desea o no empujar/elementos a la pila de navegación. (Mi ejemplo es un enfoque bastante básico de "lo básico") –

+0

mucho funciona realmente – Kiran

0

Esta es la forma que tenemos para crear barra de pestañas programáticamente

UINavigationController *BandNavigationController3; 
AudienceSettingsViewController *audienceSettingsViewView =[[AudienceSettingsViewController alloc]initWithNibName:@"AudienceSettingsViewController" bundle:nil]; 
BandNavigationController3 = [[UINavigationController alloc]initWithRootViewController:audienceSettingsViewView]; 
BandNavigationController3.tabBarItem.title = @"Settings"; 
BandNavigationController3.tabBarItem.image = [UIImage imageNamed:@"settings.png"]; 

[BandNavigationController3.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:4]; 
BandNavigationController3.navigationBar.hidden = YES; 

[bandTabBarArray addObject:BandNavigationController3]; 
[BandNavigationController3 release]; 
[audienceSettingsViewView release]; 

[tabBarController setViewControllers:bandTabBarArray]; 
[bandTabBarArray release]; 
+0

-1 Un trabajo de copiar y pegar mal formateado sin explicación. –

Cuestiones relacionadas