2010-10-27 10 views
8

Tengo un UITableViewController existente que se estaba utilizando previamente en un UINavigationController.Agregue un UINavigationBar a UITableViewController sin un UINavigationController

Necesito convertirlo para presentarlo como una vista modal. Sin embargo, todavía quiero tener una barra de navegación en la parte superior. Sé que esto suena extraño, ¿por qué no presentarlo en el UINavigationController si quiero un UINavBar? Quiero presentarlo sin el UITabBarController que está asociado con mi UINavigationController.

Intenté abrir el XIB, agregué una nueva vista, moví el UITableView para que fuera una subvista y agregué una NavigationBar a esa nueva vista también. Sin embargo, esto no parece tener ningún impacto y toda la tabla se sigue presentando, no hay barra de navegación visible. Creo que esto se debe a que la clase es una subclase de UITableViewController.

¿Debo convertir esto a UIViewClass? ¿Existe un buen enfoque para agregar una barra de navegación en el código o a través de Interface Builder a un UITableViewController existente?

Gracias por cualquier consejo sobre cómo abordar esto.

Respuesta

15

¿Cambió la conexión en el XIB para la vista Propietario del archivo? Debe apuntar a su vista externa que contiene tanto la barra de navegación como la vista de tabla.

Pero no estoy seguro de entender por qué no desea utilizar un controlador de navegación. Sólo hacer esto:

MyViewController *viewController = [[[MyViewController alloc] init] autorelease]; 
UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:viewController] autorelease]; 
[self presentModalViewController:navController animated:YES]; 

hago esto todo el tiempo en la presentación de una vista modal - parece más limpio que incluye una barra de navegación directamente en la vista.

+0

Gracias. Esto fue un golpe de frente para mí. Tiene mucho sentido. – Nick

+0

Resumiría esta respuesta 10 veces si pudiera. – Alyoshak

Cuestiones relacionadas