6

Actualmente tengo un punto de vista establecido de la siguiente manera:programación añadir UINavigationController en UIViewController

@interface BlogViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> { 
    UITableView *mainTableView; 
} 

@property (nonatomic, retain) UITableView *mainTableView; 

Como se puede ver, tiene una UITableView dentro de ella que me carga todos mis datos. Sin embargo, cuando llamo a la siguiente función:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    SingleBlogViewController *viewController = [[SingleBlogViewController alloc] init]; 
    [self.navigationController pushViewController:viewController animated:YES]; 
    //[self presentModalViewController:viewController animated:YES]; 
    [viewController release]; 
} 

no pasa nada. Por alguna razón, mi UITableView dentro de mi UIViewController no está presionando la vista. ¿Esto es porque no es un UITableViewController? Traté de cambiarlo a eso, y todavía no funcionó.

¿Falta algo aquí?

+1

¿Cómo se muestra BlogViewController? ¿Fue empujado o es el controlador de vista raíz de un controlador de navegación? – Anna

+0

Es una vista modal que se muestra utilizando presentModalViewController: – joshholat

+0

¿cómo está agregando su uiviewcontroller a su programa? A través de un UINavigationController? – jmont

Respuesta

26

Encontré las primeras partes de this blog post útiles para mostrar cómo crear y usar un UINavigationController programáticamente sin el Interface Builder.

Algunas de las cosas que me gustaría la documentación y tutoriales habría subrayado a mí:

  • Al crear el UINavigationController se obtiene una UIView y UINavigationBar de forma gratuita (es decir, no es necesario añadir por separado ellos y descubrir cómo conectarlos juntos).

  • se agrega la propiedad myUINavigationController.view como la vista "principal" y luego empuje/pop UIViewController s en el UINavigationController y se mostrará automáticamente como visible en la myUINavigationController.view UIView.

  • Cuando se presiona un UIViewController en un UINavigationController, la UIViewController.navigationController se rellena. Si no ha empujado a la vista en el control de navegación, que supongo que la propiedad está vacía.

  • El tiempo/lugar para agregar mediante programación botones a la UINavigationBar no cuando y donde se construye la UINavigationController, sino más bien por el individuo UIViewController s cuando se cargan a medida que empuja a la UINavigationController es.

  • que sólo tenía que añadir un botón "Done" para la UINavigationController 's UINavigationBar en el método del primer UIViewControllerviewDidLoad inserta en la UINavigationController. Cualquier UIViewController presioné arriba de esa primera vista automáticamente tenía un botón "atrás" en el para navegar hasta el UIViewController cubierto.

  • Si configura la propiedad title de su UIViewController antes de ponerla en la pila de UINavigationController. El título de UINavigationBar será el título de su vista. Además, cualquier botón "atrás" nombrará automáticamente la vista a la que está regresando en lugar de decir "atrás" genéricamente.

+0

Hola, lo lamento molestar, pero la entrada del blog que das está muerta, ¿hay alguna posibilidad de encontrarla en otro lado? gracias – armnotstrong

+0

@armnotstrong prueba esto https://web.archive.org/web/20120501094236/http://thealternative.wordpress.com:80/2009/04/27/iphone-dev-tips-navigation-and-tap- bar-controller/ –

-3

visita por favor "How to add UINavigationController Programmatically"

Por favor, visite el enlace de arriba & obtener toda la información relativa UINavigationController.

UINavigationController es una subclase de UIViewController, pero a diferencia de UIViewController, por lo general no es una subclase. Esto se debe a que el controlador de navegación en sí raramente se personaliza más allá de los visuales de la barra de navegación. Se puede crear una instancia de UINavigationController en código o en un archivo XIB con relativa facilidad.

+2

Creo que la pregunta es cómo crear un UINavigaionController dentro de un UIViewController, el enlace de arriba solo muestra cómo crear un UINavigationController en la clase principal de AppDelegate. – c0d3Junk13

+2

el enlace está caído. –

Cuestiones relacionadas