iOS表视图错误 - 在键值观察者仍在其上注册时进行了交易 - dgelasticpulltorefresh



所以我有两个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: {});

此错误是什么意思?那会导致它呢?我在堆栈溢出上看到的所有答案都使用我甚至没有任何相似之处的代码,这就是为什么我很困惑的原因。

我很确定,根据我的研究,这与我的桌面观点之一有关,但我可能完全错了。

进行了更多研究后,我发现将以下代码添加到第二视图控制器解决了问题。

deinit {
    self.tableView.dg_removePullToRefresh()
}

这是因为我使用库(dgelastionpulltorefresh)来处理拉动以刷新。有关此问题的GitHub问题可以在此处找到。希望这对其他人有类似问题或类似问题的帮助。

最新更新