Cómo detectar la pulsación del botón «Atrás» en UINavigationController y ejecutar tu propio código
¡Hola! Soy nuevo en el desarrollo de iOS con Swift y tengo un problema. En mi aplicación hay un UINavigationController con varias pantallas. Necesito ejecutar una acción específica (por ejemplo, guardar datos o mostrar una advertencia) cuando el usuario presiona el botón estándar «Atrás» en la barra de navegación.
He intentado sobrescribir el método `viewWillDisappear`, pero se llama no solo al presionar «Atrás», sino también al navegar a otra pantalla (por ejemplo, al hacer push de un nuevo controlador). Esto no es adecuado.
Aquí hay un ejemplo de mi código:
```swift
class SecondViewController: UIViewController {
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// Este código se ejecuta tanto al presionar «Atrás» como al navegar hacia adelante
print("La pantalla desaparece")
}
}
```
He leído que se puede usar `UIBarButtonItem` y crear mi propio botón «Atrás», pero entonces se pierde el estilo y la animación estándar. ¿Cómo puedo interceptar correctamente solo la pulsación del botón «Atrás»?