iPhone SDK: UIWebView - PullRequest
       10

iPhone SDK: UIWebView

1 голос
/ 11 марта 2009

Я работаю над приложением, которое использует UIWebView для отображения своих файлов справки. WebView живет в своем собственном представлении, DocViewController ... когда его называют

- (void)viewDidLoad {

метод использует

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:   [[NSBundle mainBundle] pathForResource:docPage ofType:@"html"]isDirectory:NO]]];

чтобы загрузить нужную страницу документа. Однако, как только первая страница загружена, представление становится статичным, а новые страницы не загружаются при изменении docPage и переключении представления. Есть ли способ очистить webView, чтобы новые страницы загружались по запросу?

Edit:
Первый ответ сбивает меня с толку. Как рутина ниже работает. Просто он работает только один раз . После того, как представление загружено в первый раз, оно не изменяется, когда это представление снова включается и запрашиваемая страница html отличается. Представление всегда отображает первую запрошенную HTML-страницу и не загружает новые запросы.

 - (void)viewDidLoad {

     docPage = [NSString stringWithFormat: @"%d", hexpage];

     [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[NSBundle mainBundle] pathForResource:docPage ofType:@"html"]isDirectory:NO]]];

 }

Ответы [ 2 ]

3 голосов
/ 13 марта 2009

viewDidLoad вызывается только один раз, если только представление не выпущено и не требует перезагрузки. Обычно это происходит только тогда, когда контроллер представления получает предупреждение о нехватке памяти. Вместо viewDidLoad попробуйте ввести этот код в viewWillAppear:, который вызывается каждый раз, когда вид отображается на экране.

2 голосов
/ 11 марта 2009

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

- (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];

Edit: Также убедитесь, что ваши гиперссылки не пытаются открыться в новом окне с чем-то вроде target = "_ blank", ваше веб-представление не откроет эти

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...