我试图在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。
因此,您试图调用已发布的UIWebView的reload方法。这基本上就是它崩溃的原因。
希望能帮助到你
关于ios - UIWebView。在viewDidDisappear中重新加载时访问错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10138618/