2012-02-21 4 views
1

UIWebViewを使用してウェブページを処理するを使用しています。ユーザーがWebリンクをクリックすると、他の画面からモーダルと呼ばれます。アプリストアリンクが見つかった場合は、私のビューを閉じてアプリストアを開くコードがあります。それはアプリストアのリンクを開きますが、ほとんどの時間私の意見を無視することはできません。だから私は私のアプリに戻ってきたら、空のウィンドウが表示されます。それは時々動作します。どのように私はそれが毎回起こることができる任意のアイデア?前もって感謝します!アプリケーションストアを開くときにUIWebView shouldStartLoadWithRequestからの表示を消す

は、ここに私のコード

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSURL *url = request.URL; 

    if (![url.scheme isEqual:@"http"] && ![url.scheme isEqual:@"https"]) { 
     if ([[UIApplication sharedApplication]canOpenURL:url]) { 
      [webView stopLoading]; 
      [self dismissModalViewControllerAnimated:NO]; 
      [[UIApplication sharedApplication]openURL:url]; 
      return NO; 
     } 
    } 
    else 
     return YES; 
} 

答えて

1

私は解決策を見つけたです。それは競争状態になっていた。だからUIViewは、アプリがバックグラウンドに入る前にビューを閉じるための十分な時間を得ていませんでした。だから私はdismissModalViewコールをこのような遅れで入れた。

[self performSelector:@selector(actionDismissView) withObject:nil afterDelay:0.2]; 

それはトリックをやった!

関連する問題