2012-04-15 22 views
1

UIWebViewがコンテンツを読み込んでいる間に空白の白いウィンドウが表示されないようにしようとしています。 UIWebViewに背景を置くのではなく、現在のウィンドウにHUDを配置し、コンテンツがロードされたときにuiwebviewを含む新しいuiviewcontrollerをプッシュするだけです。uiwebviewdelegateが非表示のuiwebviewから呼び出されない

FirstViewを:ここで私は(コードは正気のために短縮)何をやったかだ

MyViewController *myVC = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]; 
myVC.parentController = self.navigationController; 
UIView *myView = [myVC view];  // Force view to load 

MyViewController:

- (void)viewDidLoad 
{ 
    ... 
    [myWebView setDelegate:self]; 
    [myWebView loadHTMLString:htmlString baseURL:baseURL]; 
    ... 
} 


- (void) webViewDidFinishLoad:(UIWebView*) webView { 
    [parentController pushViewController:self animated:YES]; 
} 

OK、そうviewDidLoadが呼び出さ取得されていますが、uiwebviewdelegate方法のどれもコールされています。私は、ビューコントローラ

FirstViewプッシュする場合は、:そして、MyViewControllerでuiwebviewdelegate方法の全てを

MyViewController *myVC = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]; 
[self.navigationController myVC animated:YES]; 

と呼ばれるのですか。

私は立ち往生しています。

答えて

0

あなたのアプリケーションの特定の要件はわかりませんが、コンテンツが読み込まれている間は、最初にView Controllerをプッシュしてから、新しいView Controllerの上にHUDを表示することをお勧めします。ビューコントローラのビューにHUDをviewDidLoadで追加し、WebViewのwebViewDidFinishLoadコールバックメソッドでHUDを削除します。

まだ実行していない場合は、コンテンツが読み込まれている間にメインのUIスレッドをブロックしないように、Webビューのコンテンツをバックグラウンドスレッドに読み込んでください。そうでない場合は、一時的に凍結。

+0

あなたが言っていることは私がやっていたことですが、私が持っていた問題は、ビューコントローラをプッシュしたときにコンテンツを読み込むためにuiwebviewを0.5から4秒かかり、その間に白い空白のウィンドウ時間。 HTMLコンテンツが読み込まれている間に背景画像を設定することができましたが、コンテンツがロードされてからuiwebviewが表示されるまで、最初のビューでHUDをスローする方が良いと思います...いくつかのインタースティシャル画像は0.5秒のシナリオで気を散らす。 – michael

+0

私は、HUDを表示することは道のりであることに同意しますが、Segueが発生した後にコンテンツを読み込んでいる間は、目的のViewControllerでHUDを表示する方が良いと思います。それでもあなたの最初のviewcontrollerにHUDを表示したいのであれば、最初のviewcontrollerがhtmlStringのリクエストを担当するようにしてから、レスポンスが受け取られると、レスポンス文字列を目的のviewcontrollerのプロパティとして設定してからnavスタックにプッシュします。 – jonkroll

+0

私たちはちょっと離れていると思うし、何かが見つからないかもしれない。私の問題は、uiwebviewdelegateメソッドのどれも、宛先のviewcontrollerがプッシュされるまで呼び出されないことです。一度uiwebviewにHTMLがあれば、uiwebviewがリンク/画像を読み込むのに数秒かかるので、その時は空の白い画面が表示されます。なぜデリゲートメソッドが呼び出されていないのかを知りたいのですが、それを表示する前にuiwebviewがコンテンツをロードするまで待たなければなりません。 – michael

関連する問題