我在我的iPhone应用程序中使用MBProgressHUD。一切正常,我按照自己的意愿显示警报。但是有一个问题:我不能使用hudWasHidden
代理来发送我的一个警报。我想这样做是因为我使用自定义segue从另一个加载视图,但我想仅在警报隐藏后加载视图。我以这样的方式调用警报:[alertSentHUD hide:YES afterDelay:2.0];
我将我的类设置为MBProgressHUDDelegate
(在头文件中)。我还将[alertSentHUD setDelegate:self];
放在我的viewDidLoad中,以便捕获有问题的hudWasHidden
,我通常会按照[self performSegueWithIdentifier:@"NewAlertToAllThreads" sender:self];
启动我的segue:
但似乎永远不会调用它(我没有达到我想要的视图)。
有什么想法吗?感谢。
答案 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];
}];