Хобрук: Ваш путь к мастерству в программировании

Пакет SDK для iPhone: UIWebView

Я работаю над приложением, которое использует 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]]];

 }

  • Вы загружаете новые запросы программно или же они возникают в результате взаимодействия в веб-представлении, т. Е. Нажатия гиперссылок. Если это последнее, может быть проблема с вашими путями, поэтому использование baseURL, чтобы сообщить веб-просмотру, где находится ваш веб-корень 11.03.2009
  • Никакого взаимодействия, все запрограммировано. Спасибо за комментарий! 16.03.2009

Ответы:


1

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

13.03.2009

2

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

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

10.03.2009
Новые материалы

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..