Обновление метки с прогрессом UIProgressView - PullRequest
0 голосов
/ 18 августа 2011

Я использую очередь ASIHTTPRequest в отдельном файле класса из основного окна для загрузки нескольких файлов с моего веб-сервера. Я установил UIProgressView в качестве делегата прогресса загрузки следующим образом:

UIProgressView *myProgressView = [[UIProgressView alloc] init];
[myQueue setDownloadProgressDelegate:myProgressView];

Затем я могу успешно NSLog прогресс в методе requestFinished с помощью:

NSLog(@"Progress: %f", [myProgressView progress]);

Все работает нормально, и я могу видеть правильные суммы, отображаемые в журнале.

То, что я хочу сделать, это обновить текст метки на главном экране, но, похоже, не могу этого сделать ..... другими словами, как передать прогресс в режиме реального времени в другое представление / класс для обновления текста метки.

Любые указатели в правильном направлении будут с благодарностью!

Спасибо!

1 Ответ

1 голос
/ 18 августа 2011

В вашем классе делегата установите свойство, которое является указателем ссылки на основной класс (сделайте его свойством назначить).

MyMainView *myMainView
@property (nonatomic, assign) MyMainView *myMainView

В то время, когда вы создаете ASIHTTPRequestQueue и устанавливаете его делегат, такжеустановите свойство myMainView для делегата.

В свой класс основного представления добавьте метод, например

-(void) updateProgress:(double) progress {
    // code to update the label text
}

В вашем методе делегата (т. е. где вы в настоящее время регистрируете ход выполнения):

[self.myMainView updateProgress:[progressView progress]];
...