关闭(或弹出)我手动添加的 NavigationController 不起作用

Posted

技术标签:

【中文标题】关闭(或弹出)我手动添加的 NavigationController 不起作用【英文标题】:Dismissing (or popping) a NavigationController I added manually does not work 【发布时间】:2015-07-09 21:31:03 【问题描述】:

在我的 AppDelegate 中,我有以下代码在收到通知后执行:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *navigationController = (UINavigationController *)[storyboard instantiateViewControllerWithIdentifier:@"VideoPlayback"];

VideoPlaybackViewController *videoPlaybackViewController = (VideoPlaybackViewController *)[navigationController topViewController];
videoPlaybackViewController.publishing = YES;
[(UINavigationController*)self.window.rootViewController pushViewController:navigationController animated:NO];

这成功地调出了新的 ViewController 并显然将其添加到导航堆栈中,因为我可以使用导航栏上的后退按钮返回并随后关闭视图控制器。

问题是,我不想使用导航栏。事实上,我想隐藏后退按钮。不幸的是,当我尝试使用它应该使用的方法关闭视图控制器时,它什么也不做。我已经尝试使用这两种方法来关闭视图控制器:

[self dismissViewControllerAnimated:YES completion:nil];
[self.navigationController popViewControllerAnimated:YES];

我做错了什么?谢谢。

【问题讨论】:

你试图将导航控制器推入导航控制器? 我什至没有注意到!这解决了我的问题,谢谢。 我将其发布为答案。 【参考方案1】:

您正在尝试将导航控制器推送到导航控制器中,这不会很好地结束。

[(UINavigationController*)self.window.rootViewController pushViewController:navigationController animated:NO];

可能需要改成:

[(UINavigationController*)self.window.rootViewController pushViewController:videoPlaybackViewController animated:NO];

【讨论】:

以上是关于关闭(或弹出)我手动添加的 NavigationController 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

是否有可能在Android中单击图像时显示Toast消息或弹出窗口?

用jquery代码如何实现当我点击“查看”按钮时,在弹出窗口或弹出页面,显示数据库的详细数据

Twitter Bootstrap 弹出框/工具提示错误与移动设备?

没有模式框或弹出窗口的自适应支付?

没有模式框或弹出窗口的自适应支付?

如何在win 8中显示吐司通知或弹出通知?