从AppDelegate获取storyboard定义的UINavigationController

bbr*_*ame 9 iphone objective-c storyboard uinavigationcontroller ios

在storyboard中,我有一个介绍视图控制器,它会淡化为UINavigationController.

      |   |      |   |
   -> |   |  ->  |   |     
      |   |      |   |
     ViewCtrl   NavCtrl
Run Code Online (Sandbox Code Playgroud)

我想从应用程序委托中获得对导航控制器的引用(就像@Guillaume在这个问题中的回答一样).

这是我试图访问它的方式:

UIApplication.sharedApplication.delegate.window.rootViewController.navigationController;
Run Code Online (Sandbox Code Playgroud)

但导航控制器是零.

任何想法为什么navController是零或我可以做什么来获得它的引用?

Ars*_*sen 24

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

UINavigationController *controller = (UINavigationController*)[mainStoryboard 
                    instantiateViewControllerWithIdentifier: @"<Controller ID>"];
Run Code Online (Sandbox Code Playgroud)

您可以在导航控制器的属性检查器中指定导航控制器的控制器标识符.

  • 这将每次返回导航控制器的新实例 (3认同)