导航控制器在第二个视图控制器中为零
Posted
技术标签:
【中文标题】导航控制器在第二个视图控制器中为零【英文标题】:Navigation controller is nil in the second view controller 【发布时间】:2015-11-23 19:45:19 【问题描述】:所以我设置了 AppDelegate 来加载具有导航控制器的根视图 vc:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
SecondViewController *vc = [[SecondViewController alloc] init];
self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:vc];
[self.window makeKeyAndVisible];
return YES;
在我的 SecondViewController 中,我有一个方法可以调用 push 来呈现第三个视图控制器:
ThirdViewController *thirdVC = [[ThirdViewController alloc]init];
[self.navigationController pushViewController: thirdVC animated:YES];
虽然这不起作用。仔细检查后,SecondViewController 上的 self.navigationController 属性为零。我在 AppDelegate 上是否遗漏了一些东西来使这个非零?
【问题讨论】:
尝试单独设置导航控制器并用视图控制器初始化,并使其成为根视图! 【参考方案1】:尝试这个,因为我遇到了同样的问题,但我通过在项目的自定义类标题下设置相同的类名和 Storyboard ID 名称来解决它。
registerViewController *regVC = [self.storyboard instantiateViewControllerWithIdentifier:@"registerViewController"]; [self.navigationController pushViewController:regVC 动画:YES];
【讨论】:
【参考方案2】:试试这个:
SecondViewController *vc = [[SecondViewController alloc] init];
UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:vc];
self.window.rootViewController = navigationController;
[self.window makeKeyAndVisible];
无需在应用委托中将根视图控制器设为 nil。
【讨论】:
我已经尝试过了,但它不起作用。我的意思是 self.navigationController 似乎为零,不知道为什么。 您尝试以编程方式将导航控制器添加到 VC,或者您的 VC 在情节提要中有导航控制器吗?@user1686342 我没有情节提要,我已经使用 XIB 以编程方式添加了 嗯,我已经在上面分享了 你在哪里调用第二个 VC 中的推送代码?以上是关于导航控制器在第二个视图控制器中为零的主要内容,如果未能解决你的问题,请参考以下文章