所以我有一个带有webview的UIViewController。我尝试将另一个viewcontroller推入导航控制器,然后模拟内存警告,然后返回。现在,带有webview的视图纯属空白。我尝试添加一个视图并将背景颜色更改为此代码,并且在内存警告之后它没有添加它。我试着调用setNeedsLayout和setNeedsDisplay,但它也没有帮助。就好像视图不存在一样。所以我仔细检查了视图框,它是:
<UIView: 0x8aebd70; frame = (0 0; 768 960); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x8ae2830>>
任何想法为什么?
答案 0 :(得分:0)
您需要下载完整的HTML页面,然后将其存储在本地缓存中,然后告诉webview加载它。因此,每当webview收到内存警告时,它将卸载内存中的内容,当你返回时它会在缓存中加载HTML
答案 1 :(得分:0)
这很正常。在iOS6内存警告之前从不可见的视图控制器中删除根视图,从iOS6它只删除视图控制器拥有的非可见视图的后备存储。所以一切都取决于你告诉webview加载html页面的位置。我建议你使用-viewWillAppear
。