2011-12-26 7 views
2

webViewが完全に読み込まれたときに、viewDidLoadのHUDインジケータを正常に表示できますが、webViewDidFinishLoadメソッドで非表示にできません。助けてください。MBProgressHUDインジケータが非表示にならない

私は.hファイル内のコード::

の下に使用しています

- (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"; 

} 

とwebViewDidFinishLoadでのviewDidLoad

MBProgressHUD *HUD; 

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

修正プログラムが見つからない場合は[SVProgressHUD](https://github.com/samvermette/SVProgressHUD)を試してみてください。あなたの場合は '[SVProgressHUD showWithStatus:@" Loading "]'と '[SVProgressHUD dismiss]' – samvermette

+0

を呼び出すのと同じくらいシンプルになるでしょう。SVProgressHUDは私の望むものですが、xcodeシミュレータと私のipadではなく、私は間違って何をしていますか? –

+0

'viewDidLoad'の代わりに' viewDidAppear: 'にそれを表示してみてください。 – samvermette

答えて

10

私は、エラーを修正してきたが、私はへのviewDidLoadからコードを移動、すべてwebViewDidStartLoad今回はうまく動作しています:)

- (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]; 
} 
0

それは、これを使用して削除してくださいクラスメトd:

+ (BOOL)hideHUDForView:(UIView *)view animated:(BOOL)animated 

- (void)webViewDidFinishLoad:(UIWebView *)web 
{ 
    [MBProgressHUD hideHUDForView:self.view animated:YES]; 
} 

あなたがこの方法を使用する場合、あなたはあなたのviewDidLoadこのよう書き換えについて考える必要があります。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    //... 

    MBProgressHUD *HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
    HUD.labelText = @"loading"; 
} 
3

試してみてください

[HUD hide:YES]; 
if(HUD!=nil && [HUD retainCount]>0) 
{ 
    [HUD removeFromSuperview]; 
    [HUD release]; 
    HUD=nil; 
} 
2

あなたは、viewDidLoadからMBProgressHUDを呼び出すviewDidAppearからそれを呼び出して試してみて、すべてがうまく動作するはずではないはずです。

関連する問題