iOS: cómo crear un elemento de barra de navigation en el controller de vista?

He estado intentando crear un button de retroceso de la barra de navigation.

Aquí está mi código:

UIBarButtonItem *barButton = [[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordenetworking target:self action:nil]autorelease]; self.navigationItem.rightBarButtonItem = barButton; 

Pero no muestra nada en la barra de navigation.

Estoy usando UIViewController, no UINavigationController.

¿UINavigationController es la única forma de lograr esto?

Cualquier ayuda sería muy apreciada.

Cualquier enlace a un buen tutorial será genial.

Gracias.

Sin que el controller de vista tenga un controller de navigation (es decir, viewController.navigationController! = Nil), no puede agregarlo de esta manera.

Una cosa que puedes hacer es que si se está creando con la punta, simplemente debes arrastrar un elemento del button de barra a una barra de navigation y vincularlo a través de IBAction.

Recomendaría empujar este controller de vista desde un control de NVIDIA: obtendrás todas esas cosas de forma gratuita:

 UIViewController *vc = [[UIViewController alloc] initWithNibName:nil bundle:nil]; UINavigationController *navCntrl1 = [[UINavigationController alloc] initWithRootViewController:vc]; 

Si tiene su controller de vista creado a partir de un file NIB en Interface Builder, y la superficie de layout del controller de vista tiene una barra de navigation en él, la forma más fácil de hacerlo sería arrastrar un elemento de button de barra desde el inspector de objects a la derecha derecho de la barra de navigation A continuación, creará una IBAction en su encabezado e implementación a la que se conectaría.

Consigo insert el button directamente en UINavigationBar:

 [yourUINavBar insertSubview:yourButton atIndex:1]; 

El método -navigationItem de UIViewController solo funciona junto con UINavigationController u otras contenciones UIViewController. Tendrá que tener acceso a UINavigationBar y establecer el elemento directamente.

Si desea tener una barra de navigation y hacer que funcione como esperaba, cree un UINavigationController usando su UIViewController como el controller de la vista raíz. Use ese UINavigationController donde está utilizando su UIViewController ahora.

Echa un vistazo a UINavigationController en developer.apple.com para get más detalles.