【问题标题】:How to add ViewController to existing NavigationController from AppDelegate?如何从 AppDelegate 将 ViewController 添加到现有 NavigationController?
【发布时间】:2013-01-31 15:05:23
【问题描述】:

我有一个调用应用程序的 LocalNotification。

在应用程序中,几乎所有的视图都与 NavigationController 连接,以显示标题栏和“全局菜单”。

当应用程序被通知中的操作调用时,AppDelegate 必须调用包含“全局菜单”的 WebView。这意味着,我必须将这个“WebView”添加到应用程序的 NavigationController。

首先,我尝试了这样的事情:(在 AppDelegate 中)

UIViewController *currentVc = self.window.rootViewController;
[currentVc.navigationController pushViewController:orderVc animated:NO];  

但它不会显示任何内容。所以我尝试了这种方式:

UIViewController *currentVc = self.window.rootViewController;
[currentVc presentViewController:orderVc animated:NO completion:nil];  

然后 WebView(currentVc) 显示,但它不在整个应用程序的导航控制器下,因此没有“全局菜单”。

我检查了 UIViewController (self.window.rootViewController) 是否为 nil,但事实并非如此。

我搜索了很多类似的问题,但它们都与我的情况相反。

是否有任何简单的方法可以将 ViewController 添加到 NavigationController 以显示“标题栏”?抱歉问题太模糊了,但我真的需要再次帮助。

提前致谢。

【问题讨论】:

  • 你是否从 nib 文件中添加了 navigationController?
  • 是的。我正在使用情节提要来创建导航控制器。实例化 WebViewController 时,我使用 WebViewController *orderVc = [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:@"webviewcontroller"];在大多数情况下,使用 pushViewController 就可以了。但是从 AppDelegate 来看,虽然我可以使用 presentViewController(这似乎表明 self.window.rootViewController 不是 nil),但是 push 不起作用。

标签: ios objective-c viewcontroller navigationcontroller


【解决方案1】:

每个视图控制器都可以控制自己的导航项。如果您想为您推送的 VC 显示按钮/标题,则必须更新 navigationItem。通常 viewWillAppear 是它的好地方。

【讨论】:

  • 感谢您的建议。但我只是想在现有的 navigationController 层次结构中添加一个 viewcontroller。对不起我的英语,这个问题有点难以解释......
猜你喜欢
  • 1970-01-01
  • 2018-02-27
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多