2012-05-03 12 views
9

Problemas para cambiar la selección de la barra de pestañas inicial en una aplicación (es decir, la pestaña del medio se selecciona en el inicio de la aplicación en lugar de la más a la izquierda). La aplicación usa guiones gráficos y el controlador de la barra de pestañas se agregó más adelante en el desarrollo a través del método del guión gráfico.Cómo cambiar la selección inicial de la barra de pestañas programáticamente

tabBarController.selectedIndex = 1; 

el código anterior no trabajar (porque no tengo un controlador de vista personalizada conectada a mi barra de pestañas, sólo el UITabBarController por defecto):

hecho algunas google y se veía en muchos diferentes recursos y no han encontrado una solución para una aplicación que no se creó inicialmente utilizando la aplicación Barra de Tabulación de Apple.

+0

es éste el controlador de vista inicial para el proyecto o se empujó desde otro controlador de vista? – lnafziger

+0

el controlador de barra de pestañas es el controlador de vista inicial. – LazerLex

Respuesta

28

Dado que este es el controlador de vista inicial, y no es una subclase, es necesario configurar esto en su AppDelegate.

En AppDelegate.m, añada lo siguiente a su método de application:didFinishLaunchingWithOptions::

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 

    // Select the left-most tab of our initial tab bar controller: 
    UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController; 
    tabBar.selectedIndex = 0; 
    return YES; 
} 
+2

Eres brillante. Funcionó perfectamente Tiene sentido que tendría que hacerlo en AppDelegate porque es el controlador de vista inicial. Gracias. – LazerLex

+1

Para referencia futura, en la situación en la que necesite hacer algo similar y no sea el controlador de vista inicial, anulará 'prepareForSegue' en la vista anterior a la que se está cargando y la establecerá desde allí. – lnafziger

1

tabBar setSelectedItem: tratar de usar esto en su viewDidLoad

+0

que no funciona porque no tengo un controlador de vista específico para mi Barra de pestañas (con un método viewDidLoad). No tengo una salida creada para mi barra de pestañas. Es solo el predeterminado creado en Storyboards. – LazerLex

+0

Agregué una vista controller.h y .m y la conecté con mi TabBarController. Creé una salida UITabBarController y usé el índice seleccionado. y luego intenté con lo que dijiste (creando una salida de UITabBar y usando setSelectedItem) y aún nada:/ – LazerLex

Cuestiones relacionadas