我无法在viewControllers
之间执行转换,因为navigationController
是nil
。我已经在navigationController
的不同部分记录了class
,但是到处都返回nil。在storyboard
中,viewController
嵌入在navigationController
中。我已经检查了SO
上的其他线程是否存在相同的问题,但是没有一个答案对我有帮助甚至没有意义。
Can't push because self.navigationController is nil
navigationController is nil,when push the viewcontroller
为什么没有?我该如何解决呢?还返回一条错误消息:
我都尝试过使用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
中,我有一个viewController
嵌入在navigationController
中,然后从那里我想将push
转换为同一viewController
中的另一个storyboard
。编辑
我得到这个工作:
[self showViewController:viewController sender:self];
很可能是因为它不使用
navigationController
。它以modular
的形式呈现,但它不是导航堆栈的一部分,这不是我想要的。很高兴知道,如果navigationController
不为零,一切都会奏效。 最佳答案
我从导航控制器创建segue experienceDetails时重现了所描述的行为...这是解决方案
1)删除segue体验详细信息表单导航控制器
2)使用标识符Experience创建push
segue从包含的视图控制器到详细信息视图控制器的详细信息
3)在视图控制器中从self
执行如下命令
[self performSegueWithIdentifier:@"experienceDetails" sender:self];
关于ios - 由于navigationController为nil,因此无法推送viewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59905178/