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.

Realizar función al descartar un Controlador de Vista

Estoy llamando a una API de método GET en la función viewDidAppear de un controlador de vista. Estoy presentando un nuevo controlador de vista usando el navigation controller sobre mi primer controlador de vista. En el segundo controlador de vista, estoy llamando a una API de método POST para agregar otra entrada en mi pantalla anterior utilizando la API de método GET. Pero cuando cierro el segundo controlador de vista, los datos de la API GET se mantienen iguales y cuando vuelvo a ejecutar el código, los datos se actualizan en el primer controlador de vista. ¿Alguien puede decirme como verificar en el primer controlador de vista si el segundo controlador de vista se ha cerrado para que pueda llamar a la API ahí?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para verificar si el segundo controlador de vista ha sido cerrado y actualizar los datos de la API GET en el primer controlador de vista, puedes usar la función viewWillAppear en el primer controlador de vista.

    Dentro de la función viewWillAppear, puedes verificar si el segundo controlador de vista todavía está presente en la pila de navegación utilizando la propiedad navigationController?.viewControllers.

    Suponiendo que el segundo controlador de vista es de la clase SecondViewController, puedes verificar si existe en la pila de navegación de la siguiente manera:

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
    
        guard let navStack = navigationController?.viewControllers, let secondVCIndex = navStack.firstIndex(where: { $0 is SecondViewController }) else {
            // Segundo controlador de vista no encontrado en la pila de navegación
            return
        }
    
        // Segundo controlador de vista encontrado en la pila de navegación
        // Actualiza aquí los datos de la API GET
    }
    

    Este código verifica si existe la pila de navegación y si el segundo controlador de vista existe en la pila. Si existe, actualiza los datos de la API GET.

    Ten en cuenta que la función viewWillAppear se llama cada vez que el controlador de vista está a punto de aparecer en la pantalla, ya sea que provenga de una operación de empujar/pop en la pila de navegación o de una presentación/despedida modal. Por lo tanto, esta solución debería funcionar independientemente de cómo se presentó o cerró el segundo controlador de vista.

Comments are closed.