質問

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ビューはそれらを開きません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top