Вопрос

Я работаю над приложением, которое использует 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 вызывается только один раз, если только представление не освобождено и его не нужно перезагрузить.Обычно это происходит только тогда, когда контроллер представления получает предупреждение о нехватке памяти.Вместо viewDidLoad, попробуйте вставить этот код viewWillAppear:, который вызывается каждый раз, когда представление отображается на экране.

Другие советы

Попробуйте использовать

- (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", ваш веб-просмотр не откроет их.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top