2009-12-22 11 views

Respuesta

69

Si su viewcontroller ya tiene un socio controlador de la barra de pestañas con él, sólo puede profundizar para el elemento de la barra ficha y establezca su tarjeta de identificación, así:

[[[[[self tabBarController] tabBar] items] 
        objectAtIndex:tabIndex] setBadgeValue:badgeValueString]; 

donde tabIndex es el índice de la pestaña elemento que desea establecer y badgeValueString es el valor de cadena que desea establecer en la pestaña.

+0

¿Hay una mejor manera de hacerlo, sin usar un tabIndex? dado que el controlador de vista se cargó después de tocar un elemento específico de la barra de pestañas, podría haber una manera ... –

+0

¡Gracias! Eso funcionó como un encanto! –

1
 int indexICareAbout = 2; 
     NSString *badgeValue = @"10"; 

     [[[[[self tabBarController] viewControllers] 
     objectAtIndex: indexICareAbout] tabBarItem] setBadgeValue:badgeValue]; 
27

Utilice la instancia tabBarItem de su controlador de vista para acceder al elemento de la barra de pestañas directamente en lugar de profundizar en él.

[self.tabBarItem setBadgeValue:badgeValue]; 
+0

+1 para una solución más simple, la solución de Matt funciona bien al actualizar el valor de la insignia de otra pestaña, pero esta solución es más fácil al actualizar el valor actual de las pestañas. –

+26

Consejo: si su controlador de vista está dentro de un controlador de navegación, debe usar '[self.navigationController.tabBarItem setBadgeValue: badgeValue];' –

+3

Y para aquellos que están buscando, aquí cómo lo eliminan '[self.tabBarItem setBadgeValue: nulo];' –

2

Si hay tres pestañas en su aplicación First, Second y Third

Índice de fichas se inicia desde 0

First tab index 0 
Second tab index 1 
Third tab index 2 

Si desea establecer el valor de la insignia 5 en Second pestaña

Así que pasar 1 (índice de tabulación de la segunda pestaña) para objectAtIndex:1 y pasar 5 (valor de divisa) para setBadgeValue:@"5"

[[self.tabBarController.tabBar.items objectAtIndex:1] setBadgeValue:@"5"]; 

También puede borrar/eliminar valor insignia pasar nil para la lengüeta spacific

Cuestiones relacionadas