es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Estado inicial de la variable proveniente de otra vista, swiftUI

Navegando desde la vista A hasta la vista B, estoy pasando una variable llamada “show”. La vista A ya no está visible.

Necesito tener una variable de estado “@State var stateShow” con un valor inicial igual al valor “show” pasado de A a B.

¿Cómo puedo hacerlo sin utilizar “onAppear”? Gracias.

struct B: View {

    public var show:Bool

    @State private var stateShow: Bool

    init(_ show: Bool){
        self.show = show
    }

}
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para inicializar la variable de estado @State stateShow en la Vista B con el valor de la variable show pasado desde la Vista A sin utilizar onAppear, puedes usar un inicializador personalizado para la Vista B y asignar el valor de show a stateShow en el inicializador. Aquí tienes un ejemplo de código:

    struct B: View {
        public var show: Bool
        @State private var stateShow: Bool
    
        init(_ show: Bool) {
            self.show = show
            _stateShow = State(initialValue: show)
        }
    
        var body: some View {
            // tu código de vista aquí
        }
    }
    

    Este código define un inicializador personalizado para la Vista B que toma un valor booleano como parámetro y lo asigna a la variable show. Luego utiliza el inicializador State con un valor inicial explícito para establecer la variable stateShow con el mismo valor pasado en show.

    Con este enfoque, no necesitas utilizar onAppear para inicializar la variable stateShow cuando la Vista B se muestra por primera vez.

Comments are closed.