Измените UIActionSheet после выполнения своей работы - PullRequest
0 голосов
/ 22 марта 2010

Мне нужно импортировать некоторые данные XML в мое приложение.

Теперь я открываю UIActionSheet и добавляю в качестве подпредставления UIActivityIndicatorView. Сначала я показываю колесо прогресса и кнопку «Отмена».

Когда XML был импортирован, я хочу спрятать колесо прогресса (это легко) и заменить кнопку на кнопку «Готово», все в том же UIActionSheet.

Сейчас я закрываю UIActionSheet с параметром dismissWithClickedButtonIndex, но мне это не нравится, потому что это то же самое, что нажатие кнопки «Отмена», и затем я показываю UIAlertView, отображающее «Все данные были импортированы» .

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 22 марта 2010

Вы не должны этого делать, когда он загружается правильно, просто отклоните ActionSheet.С другой стороны, если произойдет ошибка, отобразите предупреждение.

Подумайте о пользователе, который будет использовать приложение несколько раз в день, сообщение «Готово» каждый раз будет пустой тратой времени.

ОБНОВЛЕНИЕ
Как я понимаю, ваша цель состоит в том, чтобы использовать ActionSheet просто как всплывающее окно (с возможностью отмены), если так, просто позвоните dismissWithClickedButtonIndex:animated:, когда загрузка XML будет завершена.Если он успешен, тогда просто вызовите метод dismiss, если он неуспешен, тогда вызовите dismiss и выведите предупреждение

0 голосов
/ 22 марта 2010

Это что-то вроде хака, но должно работать. Обратите внимание, что есть большая вероятность того, что ваше приложение не будет принято в магазин приложений, поскольку вы бездельничаете с листом действий способами, которые Apple не намеревалась.

Сначала отобразите лист действий с кнопками «Готово» и «Отмена». Перед отображением листа скрыть кнопку «Готово», используя ее свойство hidden . Чтобы увидеть, как получить доступ к кнопке «Готово», см. этот вопрос .

Затем, когда вы скрываете UIActivityIndicatorView, также измените свойство hidden кнопок «Отмена» и «Готово», чтобы кнопка «Готово» стала видимой. Если кнопка «Готово» появляется в неправильной позиции, переместите ее, изменив свойство center .

...