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.