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];
と呼ばれるのですか。
私は立ち往生しています。
あなたが言っていることは私がやっていたことですが、私が持っていた問題は、ビューコントローラをプッシュしたときにコンテンツを読み込むためにuiwebviewを0.5から4秒かかり、その間に白い空白のウィンドウ時間。 HTMLコンテンツが読み込まれている間に背景画像を設定することができましたが、コンテンツがロードされてからuiwebviewが表示されるまで、最初のビューでHUDをスローする方が良いと思います...いくつかのインタースティシャル画像は0.5秒のシナリオで気を散らす。 – michael
私は、HUDを表示することは道のりであることに同意しますが、Segueが発生した後にコンテンツを読み込んでいる間は、目的のViewControllerでHUDを表示する方が良いと思います。それでもあなたの最初のviewcontrollerにHUDを表示したいのであれば、最初のviewcontrollerがhtmlStringのリクエストを担当するようにしてから、レスポンスが受け取られると、レスポンス文字列を目的のviewcontrollerのプロパティとして設定してからnavスタックにプッシュします。 – jonkroll
私たちはちょっと離れていると思うし、何かが見つからないかもしれない。私の問題は、uiwebviewdelegateメソッドのどれも、宛先のviewcontrollerがプッシュされるまで呼び出されないことです。一度uiwebviewにHTMLがあれば、uiwebviewがリンク/画像を読み込むのに数秒かかるので、その時は空の白い画面が表示されます。なぜデリゲートメソッドが呼び出されていないのかを知りたいのですが、それを表示する前にuiwebviewがコンテンツをロードするまで待たなければなりません。 – michael