2011-02-26 21 views
9

Estoy trabajando en una aplicación de transmisión de radio con 2 botones UITabBarController en la parte inferior de la aplicación. Uno para Live Streaming y uno para la lista Top 40.Buscar pestaña activa en UITabBarController

Estoy usando un StreamingViewController común para ambas pestañas. Pero dependiendo de la pestaña seleccionada, se debe pasar una URL diferente al StreamingViewController para que pueda reproducir el feed apropiado.

Entonces, ¿cómo puedo determinar la pestaña activa?

Respuesta

37

¿Incluso miró la documentación? tabBarController.selectedIndex le dará el índice de la pestaña seleccionada, y tabBarController.selectedViewController le dará un puntero al controlador de vista en la pestaña activa.

+0

Lo intenté pero fallé ... esto es lo que estoy haciendo - básicamente cuando se presiona el botón "Reproducir" en el StreamingViewController.xib en el archivo .m estoy revisando if (tabBarController.selectedIndex == 0) {// cargar url con url para transmisión en vivo y reproducir audio} if (tabBarController.selectedIndex == 1) {// cargar url para lista Top40 y reproducir audio} intenté imprime el valor de selectedIndex con nslog y siempre muestra 0. – Mohit

+0

Si ya lo has intentado, deberías decirlo en tu pregunta. Nos ahorra trabajo y te da una mejor respuesta. ¿Has confirmado que 'tabBarController' es válido? –

+0

Lo siento por eso ... ¿Cómo puedo comprobar si tabBarController es válido? – Mohit

1

No estoy seguro de dónde está llamando el código para cargar la URL, pero es probable que deba recibir una notificación cuando el usuario seleccione una pestaña diferente. Anular su clase UITabBarController, y poner en práctica el método didSelectViewController:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 

En este método, debe ser capaz de pasar la dirección URL correspondiente a su controlador.

(sé que esta respuesta es un poco tarde, pero espero que ayude)

+0

thnx ... intentaré esto – Mohit

1

Entonces me encontré con este problema ya que mi aplicación requiere la misma funcionalidad. La respuesta es: Puede encontrar la pestaña activa por tabBarController.tabBar.selectedItem.title esto le dará el título de la pestaña activa o puede usar tabBarController.tabBar.selectedItem.tag si ha asignado etiquetas a los elementos de tabBar. Espero que ayude a otros a jalar su cabello: P

Cuestiones relacionadas