Hunk - Catacombs
Personalizar Navigation Bar en iOS 5

En iOS 5 una de la novedades es que tenemos UIAppearance Protocol Reference el cual nos permite personalizar clases de iOS, uno de las clases que podemos personalizar es el UINavigationBar, en versiones anteriores de iOS lo más común era sobre escribir el metodo “drawRect” , pero desde iOS 5 este metodo ya se llama, por eso Apple implemento UIAppearance Protocol Reference, bueno ahora veremos como podemos poner una imagen para el background de una UINavigationBar, ademas no queremos los clasicos botones de el NavigationBar, pondremos unos personalizados. para que queden como la siguiente imagen

En el delegate de nuestra app en la función “didFinishLaunchingWithOptions” antes del return YES; pondremos este código

Lo que hace este código es poner las imagenes nav44 y nav32 para los modos Portrait y Landscape, en mi caso las imagenes son de 44x44 y 32x32, iOS repetira el patron de la imagen, después pondremos las características para el texto de la barra (color, color de la sombra, atributos de la sombra y la el tipo de fuente ), con esto lograremos el siguiente resultado

Ahora en nuestra app no queremos los clasicos botones de la Navigation Bar

En este ejemplo queremos tener otro tipo de boton para regresar y del lado derecho queremos tener 3 botones. en el metodo “viewDidLoad” de nuestra controlador ponemos el siguiente código

En la primera parte del código creamos un UIButton normal, le añadimos una imagen y la función que sera llamada cuando se presione el botón, despues creamos un “UIBarButtonItem” con el metodo “initWithCustomView” y como parametro el botón que creamos, despues se lo colocamos al “navigationItem” para el lado izquierdo.

En las siguientes lineas creamos 3 botones, con las posiciones en que debe aparecer, creamos un “UIView” y a este le añadimos los botones y finalmente creamos otro “UIBarButtonItem” y le pasamos el “UIView” y se lo colocamos al “navigationItem” del lado derecho, y finalmente ya tenemos nuestra UINavigationBar personalizada, a los botones del lado derecho le falta agregar las funciones que se llamaran cuando sean presionados.