繁体   English   中英

无法推送 viewController,因为 navigationController 为零

[英]Can't push viewController because navigationController is nil

我无法在viewControllers之间执行转换,因为navigationControllernil 我在class不同部分记录了navigationController ,但它在任何地方都返回 nil。 storyboardviewController嵌入在navigationController 我已经用同样的问题检查了SO上的其他线程,但没有一个答案对我有帮助,甚至对我来说都没有意义。

无法推送,因为 self.navigationController 为零

导航控制器为零,当推送视图控制器时

为什么是零? 我该如何解决这个问题? 还会返回错误消息:

我已经尝试过使用segue

 [self.navigationController performSegueWithIdentifier:@"experienceDetails" sender:self];

以及推动:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Inspiration" bundle:nil];
ExperienceViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"experience"];            
[self.navigationController pushViewController:viewController animated:NO];          

使用push没有任何反应,但会产生一条错误消息:

不允许在解除分配时尝试加载视图控制器的视图,这可能会导致未定义的行为

我也一直在寻找有关该错误的解决方案,但似乎没有关于如何解决它的明确而具体的答案。 同样,我阅读和尝试的那些建议没有奏效。

我真的很茫然。 这么简单的事情要做,但我什至不明白的事情阻碍了我。

编辑如果有帮助,我有一个tab bar ,在一个item ,我有一个嵌入在navigationControllerviewController ,我想从那里push送到同一个storyboard另一个viewController

编辑我得到了这个工作:

 [self showViewController:viewController sender:self];

很可能是因为它不使用navigationController 它虽然呈现为modular但不是导航堆栈的一部分,这不是我想要的。 很高兴知道如果navigationController不为零,事情就会起作用。

我转载的时候是从导航控制器创建赛格瑞experienceDetails描述的行为...这里是解决方案

1)删除赛格瑞experienceDetails形成导航控制器

2)从包含的视图控制器到细节视图控制器创建带有标识符experienceDetails的push segue

3) 在视图控制器中从self执行 segue 如下

[self performSegueWithIdentifier:@"experienceDetails" sender:self];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM