В моем приложении для iPhone пользователь выбирает элемент из UITableView , чтобы выбрать ресурс для просмотра. Подкласс UIViewController , необходимый для обработки ресурса, неизвестен до тех пор, пока ресурс не будет получен, что может занять несколько секунд.
В ответ на действие выбора я помещаю «загрузочный» контроллер вида в стек навигации. Этот контроллер представляет представление с UIActivityIndicatorView вместе с (возможно) другой информацией о состоянии и инициирует загрузку выбранного ресурса. С этой точки зрения пользователь может отменить загрузку, и в этом случае я вернусь к списку ресурсов. Если ресурс прибывает, тем не менее, создается соответствующий новый контроллер представления, соответствующий его типу.
Вот где оно становится липким. Если я добавлю новое специфичное для типа представление в стек nav, представление «loading» все еще будет в стеке; очевидно, когда загрузка завершена, нет необходимости «возвращаться» к этому виду. Я попытался просто добавить представление для конкретного типа в качестве подпредставления представления «загрузка», но это не приводит к тому, что мой контроллер для конкретного типа попадает в стек навигации, поэтому у него нет [self navigationController ] для дальнейшей навигации.
Как я могу "заменить" текущий вид стека навигации новым? Или, в более общем смысле, как я могу показать активность / прогресс, когда я еще не знаю, какой контроллер будет использоваться для отображения извлекаемого ресурса?
Я нашел довольно классные классы индикатора прогресса "HUD", но я не хочу, чтобы индикатор прогресса отображался в верхней части списка элементов, из которых выбирается. Вместо этого я хочу, чтобы пользователь почувствовал, что он «ушел» в новое пространство, которое ожидает заполнения.
Я довольно новичок в этом деле, поэтому я надеюсь, что по крайней мере связно сформулировал вопрос. Спасибо за любую помощь, которую может оказать любой.