dismissViewControllerAnimated() 不会关闭视图控制器

Posted

技术标签:

【中文标题】dismissViewControllerAnimated() 不会关闭视图控制器【英文标题】:dismissViewControllerAnimated() does not dismiss view controller 【发布时间】:2014-09-21 18:51:53 【问题描述】:

我正在使用 xcode 6。我的故事板中有一个“取消”按钮,当我单击它时,我想关闭我的视图控制器并返回到我原来的位置。所以在我的情节提要中,我将取消按钮连接到我的视图控制器,并通过“修饰”到我的“handleCancel”方法。

当我触摸按钮时,我看到正在调用“handleCancel”。我看到了我放的调试 printfs。但它不会解雇我当前的视图控制器。

@IBAction func handleCancel(sender: AnyObject)       
    println("Calling handle Cancel")
    self.dismissViewControllerAnimated(false, completion: nil)

你能告诉我我还缺少什么吗?

谢谢。

【问题讨论】:

此代码所在的控制器是否由模态呈现(或模态转场)呈现? 【参考方案1】:

当前的控制器类是什么?用户界面控制器? UINavigationController?等等。呈现控制器的类是什么?最后,你使用了什么样的segue?如果不确定,请检查情节提要中的连接检查器。根据这些答案会有不同的技术。

例如,如果这是 UINavigationController 中的推送转场,您将弹出视图:

self.navigationController?.popViewControllerAnimated(true)

任何方法,让我们知道。

【讨论】:

当前控制器是一个 UIViewController。它有一个“取消”按钮。当用户按下“取消”按钮时,我想将其关闭。在此之前,控制器是 UITableViewController,我通过单击导航栏中的按钮来启动此控制器。我在按钮中使用“显示”segue。 是push segue还是modal segue? 哇,你认真解决了我的问题!感谢您的解释和回答。我有不同类型的控制器,我没有意识到你必须使用不同的方法来关闭。

以上是关于dismissViewControllerAnimated() 不会关闭视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

dismissViewControllerAnimated:completion: 导致内存崩溃

在当前动画完成之前开始dismissViewControllerAnimated

调用了dismissViewControllerAnimated,但没有解除ViewController

状态恢复后,dismissViewControllerAnimated 没有使用相同的动画

dismissViewControllerAnimated() 不会关闭视图控制器

dismissViewControllerAnimated:completion: 方法替换在 Xcode4.6.1 上不起作用