Search code examples
iosmbprogresshud

MBProgressHUD indicator does not hide


i am able to show HUD indicator in viewDidLoad successfully but not able hide it in webViewDidFinishLoad method when webview is completely loaded. Please help.

i am using below code::

in .h file

MBProgressHUD *HUD;

in viewDidLoad

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSString *query = [[NSString alloc] initWithFormat:@"http://localhost/index.php?uid=%@", [[UIDevice currentDevice] uniqueIdentifier]];
    NSURL *url = [[NSURL alloc] initWithString:query];

    NSString *response = [[NSString alloc] initWithContentsOfURL:url];
    if(response)
    {
          [webView loadRequest:[NSURLRequest requestWithURL:url]];
    }
    else
    {
        //NSLog(@"err %@",response);
    }


    HUD = [[MBProgressHUD showHUDAddedTo:self.view animated:YES] retain];
    HUD.delegate = self;
    HUD.labelText = @"loading";

}

and in webViewDidFinishLoad

- (void)webViewDidFinishLoad:(UIWebView *)web
{
    [HUD hide:TRUE]; //it does not work for me :(
}

Solution

  • i have fixed the error, i moved the code from viewDidLoad to webViewDidStartLoad and everything is working fine this time :)

    - (void)webViewDidStartLoad:(UIWebView *)web
    {
        MBProgressHUD *HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
        HUD.labelText = @"loading";
    }
    
    - (void)webViewDidFinishLoad:(UIWebView *)web
    {
    
        [MBProgressHUD hideHUDForView:self.view animated:YES];
    }