我正在使用一个Navigationcontroller,它会在每次点击链接时推送一个包含Webview的新Viewcontroller。其中一个URL有一个javascript函数,每隔60秒调用另一个函数。它工作正常,但当我在该Web视图(包含javascript)后点击后退按钮一次,webview保持活动状态并继续执行javascript调用,同时完美地返回上一个webview。我可以看到它通过NSLog做事。为什么这样,我怎么能避免这个?
编辑:
我在我的Viewcontroller中声明了我的UIWebView子类,如下所示:
@property (strong, nonatomic) AFXTWebView *wv;
这就是我实例化它的方法(在ViewDidLoad中):
[self setWv:[[AFXTWebView alloc] initWithVC:self andURLString:[self.pageConfig objectForKey:xAFXTPageLink]]];
[self.view addSubview:self.wv];
[self.wv loadWebView];
我还尝试在viewWillDisappear中将webView设置为nil:
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
self.wv = nil;
}
答案 0 :(得分:1)
你必须使用viewWillAppear& viewWillDisappear方法
-(void)viewWillAppear:(BOOL)animated
{
_webView=[[UIWebView alloc]init];
......//do your stuff
}
-(void)viewWillDisappear:(BOOL)animated
{
[_webView removeFromSuperView];
_webView=nil;
}
答案 1 :(得分:0)
在viewWillDisappear
中将空白页面加载到网络视图中。
答案 2 :(得分:0)
这听起来好像您的网络视图和视图控制器没有被释放,即您有泄漏。您应该检查代码,以查看对视图控制器或Web视图的任何未发布的保留/强引用。
答案 3 :(得分:0)
-(void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];
}