iPhone SDK:UIWebView
-
08-07-2019 - |
题
我正在开发一个使用UIWebView显示其帮助文件的应用。 webView存在于它自己的视图中,DocViewController ......当它被称为
时- (void)viewDidLoad {
方法使用
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource:docPage ofType:@"html"]isDirectory:NO]]];
加载正确的文档页面。但是,一旦加载了第一页,视图就会变为静态,并且当docPage更改并切换视图时,不会加载新页面。有没有办法清除webView,以便在请求时加载新页面?
编辑:结果 第一个答案让我感到困惑。正如下面的例程一样。只是它只能一次。在第一次加载视图后,当再次切换此视图并且请求的html页面不同时,视图不会更改。视图始终显示请求的第一个html页面,不会加载新请求。
- (void)viewDidLoad {
docPage = [NSString stringWithFormat: @"%d", hexpage];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[NSBundle mainBundle] pathForResource:docPage ofType:@"html"]isDirectory:NO]]];
}
解决方案
除非视图已发布且需要重新加载,否则
viewDidLoad
仅被调用一次。这通常仅在视图控制器收到低内存警告时发生。尝试将该代码放在 viewWillAppear:
中,而不是 viewDidLoad
,每次视图显示在屏幕上时都会调用该代码。
其他提示
尝试使用
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL
将NSURL对象传递给包含HTML作为baseURL的dir,并使用类似
的方式加载HTML字符串NSString *path = [[NSBundle mainBundle] pathForResource:@"myfile"
ofType:@"html"];
NSString *html = [NSString stringWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:nil];
编辑: 此外,请确保您的超链接没有尝试在新窗口中打开,例如target =" _blank",您的webview将无法打开那些
不隶属于 StackOverflow