我试图在UIViewController的viewDidDisappear中从UIWebView的本地文件中重新加载内容。错误访问被捕获。但是,如果我在viewWillDisappear中编写相同的代码,它将起作用。
可能是什么原因?
听说UIWebView在不可见(无法确定)时无法重新加载其内容。

我的代码(希望就足够了):

@interface WebViewController : UIViewController <UIWebViewDelegate> {
    ExtendedWebView * webView;
}
@property (nonatomic, retain) ExtendedWebView * webView;
@end




//WebViewController implementation
- (void)loadView
{
    [super loadView];
    WebViewCachingSingleton * webViewSingleton = [WebViewCachingSingleton sharedService];
        ExtendedWebView * newWebView = [webViewSingleton getAvailableWebViewResource];//here I get ExtendedWebView. it works =)
    newWebView.frame = CGRectMake(0, 0, 320, 400);
    newWebView.delegate = self;
    [self.view addSubview:newWebView];
    self.webView = newWebView;
}




- (void)viewDidDisappear:(BOOL)animated
{
    [[WebViewCachingSingleton sharedService] makeWebViewUnused:self.webView];
}




//WebViewCachingSingleton:
- (void) makeWebViewUnused : (ExtendedWebView *) aWebView
{
    aWebView.isFree = YES;
    [aWebView reload];
}

最佳答案

由于视图消失时将调用viewDidDisappear,因此将不起作用,因此将释放所有子视图。在释放与该视图关联的所有对象之前,将调用viewWillDisappear。

因此,您试图调用已发布的U​​IWebView的reload方法。这基本上就是它崩溃的原因。

希望能帮助到你

关于ios - UIWebView。在viewDidDisappear中重新加载时访问错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10138618/

10-10 09:52