【问题标题】:accessing the UInavigationcontroller embedded view controller?访问 UInavigationcontroller 嵌入式视图控制器?
【发布时间】:2016-08-22 22:53:02
【问题描述】:

我有一个 iPhone 应用程序(带有情节提要),其中我使用视图控制器作为初始视图控制器。然后,我添加了一个视图控制器场景并嵌入了一个导航控制器。我希望该导航控制器能够成为窗口的根视图控制器。当我尝试以编程方式访问该视图控制器并将另一个视图控制器推送给它时,导航控制器不存在,我也收到嵌入到该视图控制器的导航控制器上无法访问场景的警告。我是试图像这样实现它

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

    UINavigationController *controller =(UINavigationController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"Newcontroller"];
    NSLog(@"%@",[controller topViewController]);

    [appdelegate.window setRootViewController:controller];
`  

谁能帮助我如何以编程方式访问此导航控制器?

【问题讨论】:

  • 取一个 UINavigationController 的自定义类。

标签: ios objective-c iphone uinavigationcontroller


【解决方案1】:

你需要这样做

第一步

创建 NavigationController 的自定义类,例如 NavigationViewController(UINavigationController 的子类)。

第二步

在 Identity Inspector 中为 NavigationController 分配类名。

第三步

在 Identity Inspector Xcode 中为该类设置 Storyboard ID。

第四步

最后通过Code访问类,例如

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

NavigationViewController *controller =(NavigationViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"navigate"];
NSLog(@"%@",[controller topViewController]);

[appdelegate.window setRootViewController:controller];

例如

【讨论】:

  • 否则我们可以将它设置为initialviewcontroller吗?
  • 据我所知没必要,你拿这个会给工作带来麻烦
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-06
相关资源
最近更新 更多