1

私のアプリは、サーバーからデータをフェッチしているときにメインウィンドウに追加されたMBProgressHUDを示しています。ログインする必要がある場合は、UIAlertViewが表示され、ユーザーにユーザー名とパスワードの入力を求めます。UIAlertViewが表示されると、MBProgressHUDが非表示になります。これは私のコードの原因ではありませんが、必要な動作です。ただし、UIAlertViewがなくなったら、HUDを元に戻したいと思います。を呼び出すことで取得できます[MBProgressHUD allHUDsForView:window]が、現在はスーパービューでnilあり、呼び出し-[show:]ても効果はありません。

UIAlertViewが表示されたときに消えたMBProgressHUDを元に戻すにはどうすればよいですか?

4

1 に答える 1

0

これは正確な問題に対する答えではありませんが、問題を解決する別の方法です。

私は、自分が uilaertview を呼び出してそれを却下する人物であることを知って、自分で進行状況を制御しようとします。では、なぜ 2 つの 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 に答える