如果我使用
NGViewController *ngView = [[NGViewController alloc]initWithNibName:Nil bundle:Nil];
[self presentViewController:ngView animated:NO completion:nil];
上面的代码控制器将转到NGViewController页面。
但是如果我使用这个导航控制器
NGViewController *ngView = [[NGViewController alloc]initWithNibName:Nil bundle:Nil];
[self.navigationController pushViewController:ngView animated:YES];
控制器将在同一页面中。
任何人都可以说出问题是什么。
答案 0 :(得分:2)
您应该使用此代码
NGViewController *ngView = [[NGViewController alloc]initWithNibName:Nil bundle:Nil];
[self presentViewController:ngView animated:NO completion:nil];
写完这一行后,你想要用推视图控制器进入不同的页面
UINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:ngView];
[self.navigationController pushViewController:navigationController animated:YES];
我希望你能用这段代码解决这个问题祝你好运
答案 1 :(得分:1)
您的self.navigationController
可能是nil
- 请通过调试查看。您的self
视图控制器不在UINavigationController
。
答案 2 :(得分:1)
现在我正在使用此代码
NGViewController *ngView = [[NGViewController alloc]initWithNibName:Nil bundle:Nil];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration: 0.50];
[self presentViewController:ngView animated:NO completion:nil];
这样它会产生同样的效果
答案 3 :(得分:1)
自我控制器应具有导航控制器(在故事板中)以便导航。
[self.navigationController pushViewController:nextController animated:YES];
答案 4 :(得分:0)
UINavigationController
是controller of controllers
,旨在让您push and pop controllers
并管理视图的层次结构。您的navigationController
媒体资源会告诉您NGViewController
当前是否处于UINavigationController's
层次结构中;如果不是(如本例所示),navigationController
属性将返回nil
。
答案 5 :(得分:0)
您必须创建自己的导航控制器,然后尝试推送视图控制器,从而构建视图层次结构。 我通常会建议:
UINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:firstviewController];
[self.window setRootViewController:navigationController];
navigationController.delegate = self;
navigationController.navigationBarHidden = YES;
答案 6 :(得分:-2)
你需要在你的第一个控制器中声明这个
NGViewController *ngView = [[NGViewController alloc]init];
[self.navigationController pushViewController:ngView animated:YES];