我无法在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
没有任何反应,但是会产生错误消息:
不允许在尝试分配视图控制器时加载视图控制器的视图,这可能导致未定义的行为
我也在寻找该错误的解决方案,但是对于如何解决该问题似乎没有明确而具体的答案。同样,我阅读并尝试过的那些建议没有用。
我真的很茫然。这样的事情很简单,但是我什至不了解我的事情。
EDIT如果有帮助,我有一个tab bar
,在一个item
中有一个嵌入在viewController
中的navigationController
,然后从那里我想push
到同一viewController
中的另一个storyboard
。
EDIT我得到了这个工作:
[self showViewController:viewController sender:self];
很有可能是因为它不使用navigationController
。它表示为modular
,但它不是导航堆栈的一部分,这不是我想要的。很高兴知道,如果navigationController
不为零,那么一切都会起作用。
1)已删除的segue experienceDetails表单导航控制器
2)创建了带有标识符experienceDetails的push
序列,从包含的视图控制器到详细视图控制器
[self performSegueWithIdentifier:@"experienceDetails" sender:self];