Так бы я поступил, да. Создайте один UIWebView и, в зависимости от того, какая ячейка выбрана, загрузите NSURLRequest в представление, используя loadRequest:
. Он обладает тем преимуществом, что не требует создания отдельных веб-представлений для каждой ячейки и является асинхронным.
Однако я не обязательно удаляю self.view
из его суперпредставления всякий раз, когда по ячейке щелкают; скорее, я бы вызвал либо модальный контроллер представления (presentModalViewController:animated:
) с веб-представлением в качестве его представления, либо я вставил бы новый контроллер в стек контроллера навигации (pushViewController:animated:
). Это более плавный переход и будет выглядеть лучше для пользователя.
Редактировать (в ответ на комментарий): Да, лучше иметь другой контроллер, чем просто менять представления. Выполнение removeFromSuperview
и addSubview:
сохраняет оба представления в одном и том же контроллере, но в результате вам будет сложнее управлять вашим кодом (один контроллер будет иметь дело с двумя представлениями) и ухудшится взаимодействие с пользователем (перехода нет, как встроенный с навигационным контроллером push).
Чтобы правильно выполнить толчок, вы должны:
- Создание контроллера навигации для существующего контроллера представления
- Когда вам нужно, создайте новый экземпляр UIViewController с его видом, установленным на UIWebView, который вы создаете и загружаете с вашим HTML
- Вставьте новый контроллер вида в стек контроллера навигации со старого контроллера вида, вызвав:
[self.navigationController pushViewController:newViewController animated:YES];