导航控制器始终为零

Uma*_*raj 3 uiviewcontroller uinavigationcontroller ios uistoryboard

我呈现的UIViewController是:

UIStoryboard *storyboard  = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

PhotoViewController *resultVC = [storyboard instantiateViewControllerWithIdentifier:NSStringFromClass([PhotoViewController class])];
[self.navigationController presentViewController:resultVC animated:YES completion:^{}];
Run Code Online (Sandbox Code Playgroud)

我已登录控制台,结果是:

po self.navigationController
<UINavigationController: 0x9c3e920>
Run Code Online (Sandbox Code Playgroud)

但是当我在PhotoViewController课堂上时,我已经记录了控制台,结果是:

po self.navigationController
nil
Run Code Online (Sandbox Code Playgroud)

它在这里没有.我不知道为什么会这样.我也有这个,但它总是:

[self presentViewController:resultVC animated:YES completion:^{}];
Run Code Online (Sandbox Code Playgroud)

Car*_*loS 6

是的,它是零. UIViewController.navigationController属性仅在ViewController被推送时设置,而不是被提供.一个不那么优雅的解决方案是你NavigationController在呈现它之前做一个全局引用(比如将引用放在单例中),然后你可以从你的内部读取它UIViewController.