关闭模态 UINavigation 控制器

Posted

技术标签:

【中文标题】关闭模态 UINavigation 控制器【英文标题】:Dismiss a Modal UINavigation Controller 【发布时间】:2015-05-30 11:33:58 【问题描述】:

我有一个UIViewController (a),它是UINavigationController (b) 中的根视图控制器。 UINavigationController 以模态方式显示(通过 segue)与另一个完全分开的 UIViewController (c)。

我遇到的问题是,当我尝试关闭模态显示的 vc (a) 时,我得到一个黑屏,没有显示任何内容。我本来希望看到 (c) 显示出来。

我应该解雇 (a) 的正确方法是什么,它存在于 (b) 中,以便 (c) 之后正确可见?

到目前为止,我已经尝试了以下方法,但都没有奏效:

self.dismissViewControllerAnimated(true, completion: nil);
self.navigationController!.dismissViewControllerAnimated(true, completion: nil);
self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil);

【问题讨论】:

【参考方案1】:

控制器只能由其父级解除。这里控制器 (c) 将关闭呈现的控制器。为此目的使用委托模式。另一个不错的方法可以在链接here 中找到。后一种是一种不错的方法。你应该接受它!

【讨论】:

谢谢 - 我使用了您建议的第二种方法,似乎可以解决问题。

以上是关于关闭模态 UINavigation 控制器的主要内容,如果未能解决你的问题,请参考以下文章

仅关闭 2 个模态呈现的视图控制器中的 1 个

UINavigation 控制器和委托[关闭]

关闭 UIAlertController 时调用 UINavigation 的 dismissViewControllerAnimated 方法

除了在模态视图控制器中使用 UIAppearance 样式吗?

模态视图中的导航视图

在后台关闭模态视图控制器