Durante mis primeros intentos con Swift UI, intenté desesperadamente averiguar cómo seleccionar la pestaña activa de forma programada. El truco está en la encuadernación.
@State public var selection = 0
Con un clic en el botón de selección le dice al valor uno. Como la selección está directamente vinculada a la barra de pestañas, el elemento de pestaña activo cambia según se desee.
Button("Go",action: {self.selection = 1})
La vinculación es la señal de acceso que se puede pasar para permitir el acceso directo de lectura y escritura al valor sin conceder la posesión (en el sentido de conservar un tipo de referencia) o la copia (para un tipo de valor).
Cuando el usuario selecciona una pestaña en la vista de pestañas, cambia el valor unilateralmente a través de la vinculación y asigna el correspondiente .tag(…) a la variableTab seleccionada. Esto funciona de la misma manera para @Estado y Objeto Observable.
El programador también puede asignar un valor a esta variable Tab seleccionada en cualquier momento, y el TabView cambia inmediatamente la pestaña visualizada.
Esta es la clave para la navegación programada en SwiftUI.
Aquí hay un ejemplo que puedes copiar/pegar directamente para jugar con él.
import SwiftUI struct ContentView: View { @State public var selection = 0 let defaults = UserDefaults.standard var body: some View { TabView(selection: $selection){ VStack { Text("First View") Button("Go",action: {self.selection = 1}) } .font(.title) .tabItem { VStack { Image("first") Text("First") } } .tag(0) Text("Second View") .font(.title) .tabItem { VStack { HStack{ Image("second") Text("Second") } } } .tag(1) } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }
Über den Autor