所以我有两个UIViewControllers,每个都有一个表视图。第一个有一个按钮来显示第二个视图控制器。第二个视图控制器有一个按钮,它取消视图控制器,使其返回到第一个视图控制器。当我单击第二个视图控制器中的“关闭”按钮时,它会短暂地返回到第一个视图控制器,然后崩溃。控制台打印以下错误消息。
An instance of class UIScrollViewPanGestureRecognizer was deallocated while key value observers were still registered with it
我不确定从哪里开始查看,因为我不确定问题的所在部分。我之前从未遇到此错误,但它没有任何意义因为我没有使用任何UIScrollViewPanGestureRecognizer
。我甚至都不知道任何observers
我正在使用。
我使用以下代码展示视图。
let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let menuViewController : UIViewController = mainStoryboard.instantiateViewController(withIdentifier: "Menu") as UIViewController
self.present(menuViewController, animated: false, completion: nil)
使用以下代码解除视图控制器。
self.dismiss(animated: false, completion: {});
这个错误是什么意思?会导致什么呢?我在堆栈溢出时看到的所有答案都使用了代码,我甚至没有任何相似的东西,这就是为什么我非常困惑。
我非常肯定根据我的研究,它与我的一个表格视图有关,但我可能完全错了。
答案 0 :(得分:8)
在做了一些研究之后,我发现将以下代码添加到我的第二个视图控制器中解决了这个问题。
deinit {
self.tableView.dg_removePullToRefresh()
}
这是因为我使用库(DGElasticPullToRefresh)来处理pull to refresh。有关此问题的GitHub问题可以在here找到。希望这有助于其他人遇到类似的问题或类似问题。