MBProgressHUD委托hudWasHidden未调用

时间:2012-07-20 12:36:19

标签: ios mbprogresshud

我在我的iPhone应用程序中使用MBProgressHUD。一切正常,我按照自己的意愿显示警报。但是有一个问题:我不能使用hudWasHidden代理来发送我的一个警报。我想这样做是因为我使用自定义segue从另一个加载视图,但我想仅在警报隐藏后加载视图。我以这样的方式调用警报:[alertSentHUD hide:YES afterDelay:2.0];我将我的类设置为MBProgressHUDDelegate(在头文件中)。我还将[alertSentHUD setDelegate:self];放在我的viewDidLoad中,以便捕获有问题的hudWasHidden,我通常会按照[self performSegueWithIdentifier:@"NewAlertToAllThreads" sender:self];启动我的segue:

但似乎永远不会调用它(我没有达到我想要的视图)。

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:2)

每当没有消息/没有按预期行动时。这意味着什么是零。 在调用[alertSentHUD setDelegate:self]之前检查是否alertSentHud是否包含nil。

Aso确保在将消息hide传递给MBProgressHUD之前设置了委托。 我的意思是确保在设置委托后调用[alertSentHUD hide:YES afterDelay:2.0]。

答案 1 :(得分:1)

即使您将NSLog()放入hudWasHidden:,它也不会显示?尽管如此,更多的源代码可以很好地理解您的问题。您也可以尝试使用块方法:

[self doSomethingInBackgroundWithProgressCallback:^(float progress) {
    hud.progress = progress;
} completionCallback:^{
    [MBProgressHUD hideHUDForView:self.view animated:YES];
    [self performSegueWithIdentifier:@"NewAlertToAllThreads" sender:self];
}];