2015-12-10 65 views
2

我有几个页面视图,每个人都有一个web视图。所有参考资料都很强。除了使用webview滚动视图并设置其委托之外,一切正常。我用它来听滚动事件。WKWebView滚动视图委托

当设置webview.scrollview的代表和弹出当前视图发生这种情况:

objc[37721]: Cannot form weak reference to 
instance (0x7fb988fe2800) of class WebViewPageController. 
    It is possible that this object was over-released, 
or is in the process of deallocation. 

我在Xcode中的堆栈跟踪,出现这种情况的通知:

WKWebView dealloc 
WKWebView _updateDelegate 
UIScrollView setDelegate 

能有什么我需要解决这个问题吗?这在使用UIWebView时运行良好,但现在升级到WKWebView会发生这种情况。有没有新的方式来收听滚动事件?

回答

11

实现您的视图控制器的DEINIT方法和设置滚动视图委托零:

deinit { 
    webView.scrollView.delegate = nil 
} 
+1

我使用Objective-C和最终使用的dealloc方法来设置委托为零。所以这是正确的答案,很好。这是WKWebView的问题,因为UIWebView的相同实现不需要它。 – mobilepotato7

+0

解决了我的问题 – leizh00701