ios - 关闭模态视图 Controller 偶尔会卡住应用程序,swift 3

标签 ios swift3 modalviewcontroller

在我的应用程序中,我有一个 View Controller ,我以模态方式呈现它。在这个 View Controller 中,我有一个 TableView 。每当用户在 TableView 中进行选择时,我都会关闭 View Controller 。

问题是有时即使调用了 dismiss 函数,view controller 也没有被解散或在长时间延迟(5-7 秒)后被解散。

这是我的代码:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
    if tableView == self.quarterTableView
    {
        self.delegate?.modalViewController(modalVC: self, dismissedWithValue:self.quarterPeriods[indexPath.row])
    }
    else if tableView == self.monthTableView
    {
        self.delegate?.modalViewController(modalVC: self, dismissedWithValue: self.monthPeriods[indexPath.row])
    }

    Print("didSelectRowAt dismiss")

    self.dismiss(animated: true) { 
        Print("finished")
    }
}

非常感谢任何帮助。

编辑:

我通过使用解决了这个问题:

DispatchQueue.main.async
{
    self.dismiss(animated: true) {
       DDLogDebug("finished")
    }
}

这样做有什么危害吗?

最佳答案

如果你想让UI上的东西马上发生,就在主队列上执行

DispatchQueue.main.async(execute: {
    self.dismiss(animated: true) { 
    Print("finished")
})

关于ios - 关闭模态视图 Controller 偶尔会卡住应用程序,swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41726017/

相关文章:

c++ - Firebase 云消息传递 : How to receive calls in OnMessage in C++ (iOS)?

swift3 - 对 SKLabelNode 中的单个字符进行动画处理

ios - 从屏幕上删除 UIViewController 没有任何作用

iOS 6/7 : How Managing 2 Nested Modal Dialog in iOS?

objective-c - 如何在显示搜索栏时将 tableView 的编辑按钮放在工具栏中(如在 Apple 的邮件应用程序中)?

ios - 在特定位置分配UITextViews

ios - 使用 contains 检查 NSManagedObject Array 是否具有特定键的值

iphone - 如何呈现登录工作流程? (模态和导航 Controller )

ios - CBCentralManagerDelegate 没有在 NSObject 中被调用

image - 银联银行 : Can't I download image with a URL?