/ / [self.navigationController pushViewController: ngView animated: YES]; no funciona - ios, object-c, uinavigationcontroller, xcode4.6

[self.navigationController pushViewController: ngView animado: SÍ]; no funciona - ios, objetivo-c, uinavigationcontroller, xcode4.6

Si yo uso

 NGViewController *ngView = [[NGViewController alloc]initWithNibName:Nil bundle:Nil];
[self presentViewController:ngView animated:NO completion:nil];

El código de arriba del controlador irá a la página NGViewController.

Pero si uso este controlador de navegación

NGViewController *ngView = [[NGViewController alloc]initWithNibName:Nil bundle:Nil];
[self.navigationController pushViewController:ngView animated:YES];

El controlador estará en la misma página.

¿Alguien puede decir que cuál es el problema.

Respuestas

2 para la respuesta № 1

Debes usar este código

NGViewController *ngView = [[NGViewController alloc]initWithNibName:Nil bundle:Nil];
[self presentViewController:ngView animated:NO completion:nil];

después de escribir esta línea cuando, entonces, desea ir a una página diferente con el controlador de vista de inserción

UINavigationController *navigationController = [[UINavigationController       alloc]initWithRootViewController:ngView];

[self.navigationController pushViewController:navigationController animated:YES];

Espero que resuelvan este problema con este código. Buena suerte.


1 para la respuesta № 2

Tu self.navigationController es probable nil - Echa un vistazo a través de la depuración. Tu self ver controlador no está dentro de una UINavigationController.


1 para la respuesta № 3

Ahora estoy usando este código

 NGViewController *ngView = [[NGViewController alloc]initWithNibName:Nil bundle:Nil];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration: 0.50];
[self presentViewController:ngView animated:NO completion:nil];

para que diera otro efecto igual


1 para la respuesta № 4

El autocontrolador debe tener un controlador de navegación (en Storyboard) para poder navegar.

[self.navigationController pushViewController:nextController animated:YES];

0 para la respuesta № 5

UINavigationController es un controller of controllers y está diseñado para permitirle push and pop controllers y administre una jerarquía de sus vistas y su navigationController propiedad le dice si su NGViewController se encuentra actualmente en un UINavigationController"s jerarquía; Si no (como en este caso), el navigationController devoluciones de propiedad nil.


0 para la respuesta № 6

Tiene que crear su propio controlador de navegación y luego intentar empujar los controladores de vista y, por lo tanto, construir una jerarquía de vistas. Normalmente sugeriría esto:

 UINavigationController *navigationController = [[UINavigationController       alloc]initWithRootViewController:firstviewController];
[self.window setRootViewController:navigationController];
navigationController.delegate = self;
navigationController.navigationBarHidden = YES;

-2 para la respuesta № 7

Necesitas declarar esto en tu primer controlador.

NGViewController *ngView = [[NGViewController alloc]init];
[self.navigationController pushViewController:ngView animated:YES];