在Xamarin中处理WKWebView

时间:2018-04-19 18:12:18

标签: c# ios xamarin wkwebview

我想知道如何正确处理webview以便在任何给定时间只有一个实例?每当我打开webview时,我都可以在我的chrome调试工具中看到它。除了这种耗尽内存之外,这也导致webview错误地显示内容的问题,因为它似乎试图一个接一个地加载,直到它最终到达它具有的最终webview。

我试过这样处理它:

protected override void Dispose(bool disposing) {
            webView.Dispose();

            webView = null;
            base.Dispose(disposing);
        }

当然,鉴于我的问题,似乎没有起作用。我的webview位于UIViewController内部,它本身就位于另一个内部。我对dispose的理解是,一旦UIViewController不再显示在屏幕上,就应该在它上面调用dispose方法(理论上)。

1 个答案:

答案 0 :(得分:1)

为什么要手动发布webView?从这个documentation,我们知道对于UIViewController,如果它从导航堆栈弹出,并且该对象所持有的任何托管对象引用也被释放或释放。 Dispose方法将自动调用,其所有子视图也将被释放。无需手动在Dispose(bool disposing)中调用它。

  

我的webview位于UIViewController内部,它本身就是   坐在另一个里面。

你的意思是UIViewController可能包含多个webView,你想在你想要的时候发布一个吗?尝试:

webView.RemoveFromSuperview();
webView = null;