[英]Can't push viewController because navigationController is nil
我无法在viewControllers
之间执行转换,因为navigationController
是nil
。 我在class
不同部分记录了navigationController
,但它在任何地方都返回 nil。 在storyboard
, viewController
嵌入在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
,我有一个嵌入在navigationController
的viewController
,我想从那里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.