我在 UIVIewController 中使用 webview 并使用以下方法在其中加载本地 HTML 文件。
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:filePath]]];
如果我将此方法放在 ViewDidLoad 中,我会在导航到看起来不太好的控制器时看到白色闪烁。
我尝试将此方法放在 ViewWillAppear 中,如下所示。我正在使用 webViewLoaded 标志来确保 webview 已加载,然后只显示当前视图,否则它正在等待,但它正在无限循环等待!
- (void)viewWillAppear:(BOOL)animated {
webViewLoaded = NO;
webView.scalesPageToFit = allowZoom;
webView.dataDetectorTypes = UIDataDetectorTypeNone;
webView.delegate = self;
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:filePath]]];
int count = 0;
while(webViewLoaded == NO)
{
NSLog(@"Waiting...");
[NSThread sleepForTimeInterval:0.1];
if(count++ > 10) break;
}
}
- (void)webViewDidFinishLoad:(UIWebView *)localwebView {
webViewLoaded = YES;
}
我也在 ViewDidLoad 中尝试过同样的事情,但它仍然处于无限循环中。
请注意,webViewLoaded 是“volatile BOOL”,但未调用 webview 委托方法。不知道发生了什么!
谁能帮我解决这个问题。谢谢。