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をクリアする方法はありますか?
編集:
最初の答えは私を混乱させます。以下のルーチンが機能します。動作するのは 1回だけです。ビューが最初にロードされた後、このビューが再びオンに切り替えられたときに変更されず、要求されたHTMLページが異なります。ビューには、要求された最初のhtmlページが常に表示され、新しい要求はロードされません。
- (void)viewDidLoad {
docPage = [NSString stringWithFormat: @"%d", hexpage];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[NSBundle mainBundle] pathForResource:docPage ofType:@"html"]isDirectory:NO]]];
}
解決
ビューが解放されてリロードする必要がない限り、
viewDidLoad
は一度だけ呼び出されます。これは通常、View Controllerがメモリ不足の警告を受け取った場合にのみ発生します。 viewDidLoad
の代わりに、そのコードを viewWillAppear:
に入れてみてください。ビューが画面に表示されるたびに呼び出されます。
他のヒント
使用してみる
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL
NSURLオブジェクトをbaseURLとしてHTMLを含むディレクトリに渡し、HTML文字列を次のようなものでロードします
NSString *path = [[NSBundle mainBundle] pathForResource:@"myfile"
ofType:@"html"];
NSString *html = [NSString stringWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:nil];
編集: また、ハイパーリンクがtarget =" _blank"などの新しいウィンドウで開こうとしていないことを確認してください。Webビューはそれらを開きません
所属していません StackOverflow