0

我想在我的方法上添加一个完成回调,以便 HUD 的进度知道它已完成。

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.mode = MBProgressHUDModeAnnularDeterminate;
hud.labelText = @"Loading";
[self doSomethingInBackgroundWithProgressCallback:^(float progress) {
hud.progress = progress;
} completionCallback:^{
[MBProgressHUD hideHUDForView:self.view animated:YES];
}];

我需要在我的方法中添加什么来确认它是否完成,或者从上面触发这个 completionCallback?

在这种情况下,我的方法可以是任何东西,例如:

-(void)doSomethignInBackgroundWithProgressCallback {
sleep(100);
}    
4

1 回答 1

3

如果HUD您可以使用它的delegate功能hudWasHidden,当您HUD像这样使用时 -

[HUD showWhileExecuting:@selector(your_function) onTarget:self withObject:nil animated:YES];

如果您想知道如何使用callbacks,请objective c关注这篇文章 -

http://stackoverflow.com/questions/1015608/how-to-perform-callbacks-in-objective-c

完成回调方法 -

- (void) doSomethingInBackground:(void (^) (void)) completion
{
    // do your job here

    completion();
}
于 2012-08-30T13:40:59.697 回答