ios - [self.navigationController pushViewController: ngView animado: SÍ]; no funciona
objective-c uinavigationcontroller (7)
Si uso
NGViewController *ngView = [[NGViewController alloc]initWithNibName:Nil bundle:Nil];
[self presentViewController:ngView animated:NO completion:nil];
encima del código, el 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?
El autocontrolador debe tener un controlador de navegación (en Storyboard) para navegar.
[self.navigationController pushViewController:nextController animated:YES];
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 dé el mismo efecto a otro
Su self.navigationController
probablemente sea nil
: compruébelo mediante la depuración. Su controlador de vista self
no está dentro de un UINavigationController
.
necesitas declarar esto en tu primer controlador
NGViewController *ngView = [[NGViewController alloc]init];
[self.navigationController pushViewController:ngView animated:YES];
UINavigationController
es un controller of controllers
y está diseñado para permitirle push and pop controllers
abrir push and pop controllers
y administrar una jerarquía de su vista. Y su propiedad navigationController
le dice si su NGViewController
encuentra actualmente en UINavigationController''s
jerarquía de un UINavigationController''s
; si no (como en este caso), la propiedad navigationController
devuelve nil
.
Debe crear su propio controlador de navegación y luego tratar de empujar los controladores de visualización y así crear 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;
Deberías 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 luego desea ir a otra página con el controlador de vista push
UINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:ngView];
[self.navigationController pushViewController:navigationController animated:YES];
Espero que resuelvan este problema con este código Buena suerte