Cómo controlar UITabBar

Creé UITabBar (elementos: información, ubicación y descripción) en medio del contenido y ahora quiero establecer una imagen de fondo personalizada para la barra de pestañas, seleccionar el primer botón predeterminado y obtener acción cuando el usuario seleccione otro elemento de la barra de pestañas.

Aquí está ss de la barra de pestañas: http://dl.dropbox.com/u/77033905/tabBar%20in%20the%20middle.png

Dime por favor las respuestas a estas preguntas:

  1. ¿Cómo establecer una imagen de fondo personalizada para esta barra de pestañas?
  2. ¿Cómo obtener el elemento seleccionado?
  3. ¿Cómo predeterminar el primer elemento seleccionado?

Por ahora he creado UITabBar e incluyo en este ViewController, ¿qué sigue?

Este es ViewController.h:

@interface ViewController : UIViewController<UITabBarDelegate> {
    UITabBar *tabBar;
}
@property (strong, nonatomic) IBOutlet UITabBar *tabBar;
...

Ver.m:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation OfferViewController

@synthesize tabBar;
- (void)viewDidLoad
{
    [super viewDidLoad];

    UIImage *selectedImage0 = [UIImage imageNamed:@"HomeDB.png"];
    UIImage *unselectedImage0 = [UIImage imageNamed:@"HomeLB.png"];

    UIImage *selectedImage1 = [UIImage imageNamed:@"ScheduleDB.png"];
    UIImage *unselectedImage1 = [UIImage imageNamed:@"ScheduleLB.png"];

    UIImage *selectedImage2 = [UIImage imageNamed:@"BuildingsDB.png"];
    UIImage *unselectedImage2 = [UIImage imageNamed:@"BuildingsLB.png"];


    //UITabBar *tabBar = self.tabBar;
    UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
    UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
    UITabBarItem *item2 = [tabBar.items objectAtIndex:2];


    [item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0];
    [item1 setFinishedSelectedImage:selectedImage1 withFinishedUnselectedImage:unselectedImage1];
    [item2 setFinishedSelectedImage:selectedImage2 withFinishedUnselectedImage:unselectedImage2];

    [super viewDidLoad];
}
...

¿Cómo puedo ahora seleccionar un elemento predeterminado y obtener cuando el usuario toca algún elemento de la barra de pestañas?

preguntado el 03 de mayo de 12 a las 15:05

2 Respuestas

este es el enlace que he usado para: barra de pestañas personalizada

Espero que esto te ayude ..

contestado el 03 de mayo de 12 a las 16:05

tnx para el enlace, pero esta es la barra de pestañas en la parte inferior controlada por AppDelegate. Tengo TabBar (ejemplo de imagen) en medio del contenido. ¿Sabes cómo controlar esta barra de pestañas? Incluí la subclase UITabBar en ViewController y en viewDidLoad llamé "OfferTabBar *tab = [[OfferTabBar alloc] init];". ¿Que sigue? gracias - iWizard

ok, entonces tienes 3 botones en un estilo de barra de pestañas, puedes actuar como si los tres fueran botones. y desde el enlace que he proporcionado arriba, puede configurar las imágenes seleccionadas y no seleccionadas. y cuando se selecciona el elemento, puede almacenarlo en su appdelegate o nsuserdefaults... Deseo que eso resuelva su problema... - iremk

El paso 5 del enlace que le dio @iremk es lo que tiene que hacer para personalizar su barra de pestañas, incluso si no está controlada por AppDelegate: siempre que tenga una referencia en su viewController o lo que sea, puede usar métodos/propiedades de Clase UITabBar.

Por cierto, si por 'personalizar' solo quiere decir configurar sus íconos en los elementos y mantener el estilo gris de la barra de pestañas, puede configurar el Image propiedad de sus artículos en InterfaceBuilder.

Para los pasos 2 y 3, solo eche un vistazo a la documentación de UITabBar y UITabBarDelegate:

contestado el 03 de mayo de 12 a las 16:05

Por favor, eche un vistazo a mi respuesta, todavía responde a su publicación. - psicópata

Y POR FAVOR, tenga cuidado de obtener una vista previa y formatear cuando publique/actualice una pregunta. - psicópata

tnx y sry pero ayuda por favor con una cosa más. - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {.. no funciona. ¿Necesito conectar de alguna manera mi UITabbar personalizado con o? - iWizard

Por supuesto. Una de las formas de hacer que se llame a este método es asignar la instancia de la clase donde anula este método al delegate propiedad de su UITabBar. - psicópata

sí, no delegué mi TabBar. Ahora está funcionando. Gracias por la ayuda. :) - iWizard

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.