color bar ios xcode swift uitabbarcontroller viewcontroller

ios - bar - Cambio de programación entre pestañas dentro de Swift



uinavigationitem title color (5)

1.Crea una nueva clase que supera a UITabBarController. P.ej:

class xxx: UITabBarController { override func viewDidLoad() { super.viewDidLoad() }

2. Agregue el siguiente código a la función viewDidLoad ():

self.selectedIndex = 1; //set the tab index you want to show here, start from 0

3. Ir al guión gráfico y configurar la clase personalizada del controlador de la barra de pestañas en esta nueva clase. (MyVotes1 como el ejemplo en la foto)

Necesito escribir un código para cambiar la vista a otra pestaña cuando se inicie la aplicación iOS (por lo que, por ejemplo, la segunda pestaña se muestra de manera predeterminada en lugar de la primera).

Soy nuevo en Swift, y he resuelto lo siguiente:

  • El código probablemente debería estar en la función override func viewDidLoad () del ViewController de la primera pestaña.

  • El siguiente código muestra el segundo ViewController, pero no con la barra de pestañas en la parte inferior (vcOptions es el segundo elemento de la pestaña ViewController:

let vc : AnyObject! = self.storyboard.instantiateViewControllerWithIdentifier("vcOptions") self.showViewController(vc as UIViewController, sender: vc)

Creo que la respuesta puede estar en el uso de UITabbarController.selectedIndex = 1, pero no estoy seguro de cómo implementar esto.


Para ampliar la respuesta de @ codester, no necesita verificar y luego asignar, puede hacerlo en un solo paso:

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool { // Override point for customization after application launch. if let tabBarController = self.window!.rootViewController as? UITabBarController { tabBarController.selectedIndex = 1 } return true }


Si su window rootViewController es UITabbarController (que es en la mayoría de los casos), entonces puede acceder a tabbar en didFinishLaunchingWithOptions en el archivo AppDelegate .

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool { // Override point for customization after application launch. if let tabBarController = self.window!.rootViewController as? UITabBarController { tabBarController.selectedIndex = 1 } return true }

Esto abrirá la pestaña con el index dado (1) en selectedIndex .

Si hace esto en viewDidLoad de su primer firstViewController , necesita administrar por indicador u otra forma para hacer un seguimiento de la pestaña seleccionada. El mejor lugar para hacer esto en didFinishLaunchingWithOptions de su archivo AppDelegate o rootViewController clase personalizada viewDidLoad .


ViewController tiene que ser hijo de UITabBarControllerDelegate . Entonces solo necesita agregar el siguiente código en SWIFT 3

self.tabBarController?.selectedIndex = 1


Swift 3

Puede agregar este código al controlador de vista predeterminado ( index 0 ) en su tabBarController:

override func viewWillAppear(_ animated: Bool) { _ = self.tabBarController?.selectedIndex = 1 }

Tras la carga, esto moverá automáticamente la pestaña al segundo elemento de la lista, pero también permitirá al usuario regresar manualmente a esa vista en cualquier momento.