【问题标题】:WKWebView scrollview delegateWKWebView 滚动视图委托
【发布时间】:2016-03-16 18:21:43
【问题描述】:

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

当设置 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 会发生这种情况。有没有新的方法来监听滚动事件?

【问题讨论】:

    标签: ios objective-c uiscrollview uiwebview wkwebview


    【解决方案1】:

    在视图控制器中实现 deinit 方法并将滚动视图委托设置为 nil:

    deinit {
        webView.scrollView.delegate = nil
    }
    

    【讨论】:

    • 我使用的是Objective-C,最终使用dealloc方法将委托设置为nil。所以这正是正确的答案,很好。这是 WKWebView 的一个问题,因为 UIWebView 的相同实现不需要它。
    • 解决了我的问题
    猜你喜欢
    • 1970-01-01
    • 2016-08-04
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    相关资源
    最近更新 更多