当前位置:  开发笔记 > 编程语言 > 正文

在解除模态视图时清除UIWebView内容(iPhone OS 3.0)

如何解决《在解除模态视图时清除UIWebView内容(iPhoneOS3.0)》经验,为你挑选了5个好方法。

我目前有一个在模态视图中显示的UIWebView.它基本上是一个详细视图,提供用户单击链接时的页面视图.当视图被驳回,然后再次提出了(当用户点击另一个链接),先前加载的内容仍然是可见的,"上面"的最后内容的新内容加载.这是有道理的,因为UIWebView的实例在会话之间持续存在,并且仅在需要内存时才会释放.

但是,当模态视图被解除时,我想完全清除UIWebView,以便1)内容被清除,2)内存被释放.到目前为止,我的研究和尝试都没有找到答案.这些链接对我没用:

    是否可以释放UIWebView的内存?

    重复使用的UIWebView在iPhone上显示以前加载的内容

我已经尝试[[NSURLCache sharedURLCache] removeAllCachedResponses];将webView设置为nil并在模态视图关闭时手动释放webView无效.干瘪群众的任何想法?



1> rob..:

有时loadHTMLString太慢了.你也可以使用:

[webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML = \"\";"];

我不确定这是否会释放大量内存...


完善!可能是视觉清除webview的最简单的解决方案.还是不明白为什么loadHTMLString这么慢.也许是因为我之后直接加载另一个页面,并且webview在开始加载新页面时停止加载并显示空白页面.

2> drawnonward..:

发布Web视图可能是最好的方法.如果视图位于视图层次结构中(具有超级视图),则必须调用removeFromSuperview以使superview释放视图.

您还可以为空文档加载html字符串:

[webView loadHTMLString:@"" baseURL:nil];



3> Adrian B..:

在某些情况下,似乎drawonward和rob建议的方法可能不起作用(可能与正在清除的页面上的CSS有关),但这确实有效:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];



4> surajz..:

评估javascript通常比加载新请求更快.

[webview stringByEvaluatingJavaScriptFromString:@"document.open();document.close();"];



5> Ivan Karpan..:

在我的情况下,我需要立即从其内容清除Web视图,并能够立即开始加载其他内容.既不加载空文档HTML字符串也不用JavaScript清除页面都会产生预期效果.相反,我用过:

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://stackoverflow.com"]]];

这清除了默认背景的视图,并按预期启动了下一页的加载.

我希望这对其他人也有帮助.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有