按下后退按钮后UIWebView仍然有效

时间:2014-03-14 12:04:41

标签: ios objective-c uiwebview uinavigationcontroller

我正在使用一个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;
}

4 个答案:

答案 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"]]]; 
}
相关问题