1

我在我的 iPhone 应用程序中使用 MBProgressHUD。一切正常,我根据需要显示警报。但是有一个问题:我不能将hudWasHidden委托用于我的一个警报。我想这样做是因为我使用自定义 segue 从另一个加载视图,但我只想在警报隐藏后加载视图。我以这种方式调用警报:[alertSentHUD hide:YES afterDelay:2.0];并且我已将我的类设置为MBProgressHUDDelegate(在头文件中)。我还放入[alertSentHUD setDelegate:self];了我的 viewDidLoad,以捕捉有问题的hudWasHidden问题,我像往常一样在哪里启动我的 segue : [self performSegueWithIdentifier:@"NewAlertToAllThreads" sender:self];

但似乎这从未被调用(我没有得到我想要的视图)。

有任何想法吗 ?谢谢。

4

2 回答 2

2

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

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

于 2012-07-24T21:28:44.247 回答
1

即使你把一个NSLog()放进hudWasHidden:去也不会显示?尽管如此,更多的源代码会很好地理解你的问题。您也可以尝试使用 blocks 方法:

[self doSomethingInBackgroundWithProgressCallback:^(float progress) {
    hud.progress = progress;
} completionCallback:^{
    [MBProgressHUD hideHUDForView:self.view animated:YES];
    [self performSegueWithIdentifier:@"NewAlertToAllThreads" sender:self];
}];
于 2012-07-24T21:08:38.433 回答