1

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

 }
4

2 回答 2

3

viewDidLoad只调用一次,除非视图被释放并且需要重新加载。这通常仅在视图控制器收到内存不足警告时才会发生。而不是viewDidLoad,尝试将该代码放入viewWillAppear:,每次视图显示在屏幕上时都会调用该代码。

于 2009-03-13T20:22:20.930 回答
2

尝试使用

- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL

将 NSURL 对象传递给包含您的 HTML 作为 baseURL 的目录,并使用类似的内容加载 HTML 字符串

NSString *path = [[NSBundle mainBundle] pathForResource:@"myfile" 
                                                 ofType:@"html"];
NSString *html = [NSString stringWithContentsOfFile:path 
                                           encoding:NSUTF8StringEncoding
                                              error:nil];

编辑:另外,请确保您的超链接没有尝试在新窗口中打开类似 target="_blank" 的内容,您的 webview 不会打开那些

于 2009-03-10T22:51:13.760 回答