【发布时间】:2017-01-18 17:42:04
【问题描述】:
在我的应用程序中,我有一个视图控制器,我以模态方式呈现。在这个视图控制器中,我有一个表格视图。每当用户在表格视图中进行选择时,我都会关闭视图控制器。
问题是有时即使调用了解除函数,视图控制器也没有被解除或在长时间延迟(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")
}
}
这样做有什么危害吗?
【问题讨论】:
-
Eugene,你不应该在调度主块中调用它,除非你从后台队列调用解除(出于某种原因未知)尝试在原始代码中打印 Thread.isMainThread 和看看它说什么
标签: ios swift3 modalviewcontroller