Обновление заголовка UIAlertView - PullRequest
0 голосов
/ 29 апреля 2009

Я загружаю кучу файлов с iPhone в веб-сервис. Я хочу иметь UIAlertView на экране с UIActivityIndicatorView внутри. Я получил это, чтобы работать нормально. Однако я хочу обновить заголовок UIAlertView при загрузке каждого файла. («Загрузка файла 1 ...», «Загрузка файла 2 ...» и т. Д.)

Я знаю, что вы не можете просто установить заголовок в цикле с синхронными веб-запросами, так как цикл выполнения пользовательского интерфейса никогда не будет вызван. Я пытался использовать NSTimer для запуска веб-запросов, но поскольку длительность каждого запроса непредсказуема, это не работает. (Сообщение может обновиться до фактического завершения запроса.)

Я действительно хочу загружать каждый файл синхронно, по одному, так как пропускная способность iPhone довольно ограничена. Я просто не могу понять механизм, который говорит: «Как только эта синхронная операция завершится, обновите пользовательский интерфейс для галочки, а затем выполните другую синхронную операцию».

Ответы [ 2 ]

1 голос
/ 29 апреля 2009

Хорошо, вот подход, который я выбрал для решения этой проблемы:

  1. Создание UIAlertView
  2. Запустите асинхронный веб-запрос для публикации элемента, установите делегата на себя
  3. В методе connectionDidFinishLoading: проверьте, есть ли еще элементы для публикации. Если есть, обновите заголовок и отмените еще один асинхронный запрос. Если нет, отключите оповещение.

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

0 голосов
/ 15 марта 2014

ты пробовал это?

alertView.title = @"new title";
[alertView setNeedsDisplay];
...