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ビューが解放されてリロードする必要がない限り、一度だけ呼び出されます。これは通常、View Controller がメモリ不足の警告を受け取った場合にのみ発生します。の代わりに、ビューが画面に表示されるたびに呼び出されるviewDidLoadコードを に入れてみてください。viewWillAppear:

于 2009-03-13T20:22:20.930 に答える
2

使ってみて

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

HTMLをbaseURLとして含むディレクトリにNSURLオブジェクトを渡し、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 に答える