Subclasificar UINavigationController

Autor: | Última modificación: 16 de noviembre de 2022 | Tiempo de Lectura: 1 minutos
Temas en este post:

Cómo subclasificar UINavigationController

Necesitaba reproducir un sonido cuando el usuario le daba al botón superior izquierdo de un UINavigationController. Es decir, el botón de «patrás» (en términos tésnicos).

Primer intento: Hay delegates pa tó

La primera sospecha, fue buscar algún delegate, ya que como bien dijo el filósofo español «Rafael Guerra»: en Cocoa hay delegates pa tó.

En efecto, UINavigationController tiene un delegate: UINavigationControllerDelegate. Lamentablemente, el protocolo del delegate nos es muy completo que digamos y consiste en los siguientes mensajes:

– navigationController:willShowViewController:animated:
– navigationController:didShowViewController:animated:

Sin embargo, lo que necesito yo NO es saber cuando va a enseñar un nuevo ViewController, sino justo lo contrario, cuando va a hacer un popViewController.

Segundo intento: Cuando todo falla, subclasifica

La solución era evidente y muy sencilla: crear una subclase de UINavigationController.

Interfase

#import 

@interface FRRNavigationController : UINavigationController {

}

@end

Implementación

#import "FRRNavigationController.h"
#import "FRRUXSounds.h"

@implementation FRRNavigationController

-(UIViewController *) popViewControllerAnimated:(BOOL)animated{
    [[FRRUXSounds defaultSounds] backClick];
    return [super popViewControllerAnimated:animated];
}
@end

Fernando Rodríguez

Sígueme en twitter.
Cursos de desarrollo iPhone

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.