Представление полноэкранного «модального» режима загрузки - PullRequest
2 голосов
/ 08 февраля 2012

Иерархия представления моего приложения имеет корень UINavigationController, внутри которого находится подкласс UIViewController, содержащий UIWebView. Как только приложение запустится, я хочу скрыть весь просмотр Navigation Controller с полноэкранным контроллером представления загрузки, пока не будет вызван метод делегата завершения загрузки веб-представления.

Чтобы достичь этого, я рассмотрел один из двух способов, ни один из которых не "чувствую себя хорошо":

  • Добавить подпредставление к представлению UINavigationController - это очень смешно, если вмешиваться в представление Navigation Controller
  • Представить модальный контроллер вида из корневого уровня - мне нужно подождать до viewDidAppear, прежде чем вызывать это, что вызывает уродливую вспышку нижнего VC, прежде чем отобразить. В свою очередь, загрузочный VC в определенных обстоятельствах представляет свой собственный модал, что означает, что у меня будет модальный поверх модального поверх корневого VC.

Я схожу с ума или это не очень простой способ добиться этого потока приложений?

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Несколько «элегантный» подход: создайте общий одноэлементный класс, содержащий UIWebView, который необходимо загрузить, и запустите запрос при запуске приложения. Тем временем покажите экран предварительной загрузки (первое, что добавляется в стек навигации при запуске приложения). Как только запрос завершит загрузку, отправьте уведомление через центр NSNotification, который заставляет AppDelegate нажать / переключиться на загруженный контроллер UIWebView.

0 голосов
/ 08 февраля 2012

Вам необходимо полностью скрыть, что происходит в фоновом режиме, с помощью UIWebView?Разве индикатор активности блокирования не достаточен, чтобы достигнуть этого пользовательского опыта?Если это так, я бы порекомендовал использовать один из многих приятных компонентов индикации активности, доступных в Интернете, таких как MBProgressHUD

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