1

我的应用程序在从服务器获取数据时显示添加到主窗口的 MBProgressHUD。如果它需要登录,它会显示一个 UIAlertView 来提示用户输入用户名和密码。当 UIAlertView 显示时,MBProgressHUD 隐藏 - 这不是由于我的代码中的任何内容,而是我想要的行为。但是,当 UIAlertView 消失时,我希望 HUD 回来。我可以通过调用来获取它们[MBProgressHUD allHUDsForView:window],但是它们的超级视图现在是nil并且调用-[show:]没有效果。

如何恢复显示 UIAlertView 时消失的 MBProgressHUD?

4

1 回答 1

0

这不是您确切问题的答案,而是解决您问题的另一种方法,

我会尝试自己控制进度,因为我知道我是调用 uilaertview 并驳斥它的人。那么为什么不使用两个 hud 呢?

// Add when your fetch method is called
        MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
        hud.labelText = @"Loading...";


//in your alertview method
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                    message:@"Message"
                                                   delegate:self
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil];

    //dissmiss progress hud before alertview is shown
    [MBProgressHUD hideHUDForView:self.view animated:YES];

    [alert show];

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSString *title = [alertView buttonTitleAtIndex:buttonIndex];

    if([title isEqualToString:@"OK"])
    {
        NSLog(@"OK button is clicked on alertview");

         //show another hud
         MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
        hud.labelText = @"Loading...";

    }
}
于 2013-01-25T15:26:27.293 回答