Переход к представлению неизвестного типа в приложении для iPhone на основе навигации - PullRequest
0 голосов
/ 28 октября 2009

В моем приложении для iPhone пользователь выбирает элемент из UITableView , чтобы выбрать ресурс для просмотра. Подкласс UIViewController , необходимый для обработки ресурса, неизвестен до тех пор, пока ресурс не будет получен, что может занять несколько секунд.

В ответ на действие выбора я помещаю «загрузочный» контроллер вида в стек навигации. Этот контроллер представляет представление с UIActivityIndicatorView вместе с (возможно) другой информацией о состоянии и инициирует загрузку выбранного ресурса. С этой точки зрения пользователь может отменить загрузку, и в этом случае я вернусь к списку ресурсов. Если ресурс прибывает, тем не менее, создается соответствующий новый контроллер представления, соответствующий его типу.

Вот где оно становится липким. Если я добавлю новое специфичное для типа представление в стек nav, представление «loading» все еще будет в стеке; очевидно, когда загрузка завершена, нет необходимости «возвращаться» к этому виду. Я попытался просто добавить представление для конкретного типа в качестве подпредставления представления «загрузка», но это не приводит к тому, что мой контроллер для конкретного типа попадает в стек навигации, поэтому у него нет [self navigationController ] для дальнейшей навигации.

Как я могу "заменить" текущий вид стека навигации новым? Или, в более общем смысле, как я могу показать активность / прогресс, когда я еще не знаю, какой контроллер будет использоваться для отображения извлекаемого ресурса?

Я нашел довольно классные классы индикатора прогресса "HUD", но я не хочу, чтобы индикатор прогресса отображался в верхней части списка элементов, из которых выбирается. Вместо этого я хочу, чтобы пользователь почувствовал, что он «ушел» в новое пространство, которое ожидает заполнения.

Я довольно новичок в этом деле, поэтому я надеюсь, что по крайней мере связно сформулировал вопрос. Спасибо за любую помощь, которую может оказать любой.

1 Ответ

1 голос
/ 28 октября 2009

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

Вы должны выдвинуть «загрузочный» контроллер вида и нажать «конкретный» контроллер представления, как только последний будет загружен и выделен. Поиграйте с тем, чтобы НЕ анимировать одно или оба из этих действий, чтобы увидеть, что дает лучший опыт.

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