我正在呈现 UIViewController
,如:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
PhotoViewController *resultVC = [storyboard instantiateViewControllerWithIdentifier:NSStringFromClass([PhotoViewController class])];
[self.navigationController presentViewController:resultVC animated:YES completion:^{}];
我已经登录控制台,结果是:
po self.navigationController
<UINavigationController: 0x9c3e920>
但是当我在 PhotoViewController
类中时,我已经记录了控制台,结果是:
po self.navigationController
nil
这里是零。我不知道为什么会这样。我也有这个,但它总是没有:
[self presentViewController:resultVC animated:YES completion:^{}];
最佳答案
是的,它是零。
UIViewController.navigationController
属性只会在 ViewController
被推送时设置,而不是呈现。
一个不太优雅的解决方案是在呈现之前对 NavigationController
进行全局引用(例如将引用放在单例中),然后您可以从 UIViewController 内部读取它
。
关于ios - 导航 Controller 始终为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21907918/