Фикс краша, возникающего при уничтожении экрана, в котором есть pull-to-refresh. В deinit этого экрана нужно вызывать метод unsubscribeFromBindings, который отпишет вручную наблюдателей на scroll view.

This commit is contained in:
Nina Dmitrieva 2017-04-27 15:42:57 +03:00
parent f72ba63c7e
commit 27562bf786
2 changed files with 8 additions and 4 deletions

View File

@ -46,6 +46,14 @@ open class RMRPullToRefresh: NSObject {
self.сontroller = controller
}
/// Метод нужно вызывать в deinit экрана, в котором используется pull-to-refresh.
///
/// Это временное решение для избежания краша из-за KVO-наблюдателей на scroll view
/// (при уничтожении скролла и экрана, в котором он лежит).
open func unsubscribeFromBindings() {
сontroller?.unsubscribeFromScrollViewEvents()
}
open func configureView(_ view :RMRPullToRefreshView, state:RMRPullToRefreshState, result:RMRPullToRefreshResultType) {
сontroller?.configureView(view, state: state, result: result)
}

View File

@ -77,10 +77,6 @@ open class RMRPullToRefreshController: NSObject {
self.subscribeOnScrollViewEvents()
}
deinit {
self.unsubscribeFromScrollViewEvents()
}
fileprivate func configureBackgroundView(_ backgroundView: UIView) {
backgroundView.translatesAutoresizingMaskIntoConstraints = false
scrollView?.addSubview(backgroundView)