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