2010-12-17 5 views
0

Ich habe einen Modal-View-Controller, den ich versuche, eine Web-Ansicht darin darzustellen. Wenn es zum ersten Mal erscheint, wird es als leer angezeigt. Wenn ich es schließe und erneut klicke, wird es jedoch gut angezeigt. Ich denke, es könnte ein Problem mit dem Laden des WebView sein, aber ich habe versucht, es nur anzuzeigen, wenn das WebView geladen wird, aber es wird nie dann aufgerufen.Modal View Controller zeigt das erste Mal leer an, funktioniert danach ordnungsgemäß

Antwort

4

Auf das webView-Steuerelement kann beim ersten Mal nicht zugegriffen werden, bis der erste aktuelle Aufruf zum Laden und Initialisieren der Steuerelemente führt. Vor dem ersten Geschenk wird webViewController.webView gleich Null sein und somit wird das Aufrufen von loadRequest nichts bewirken.

Sie können den loadRequest-Aufruf nach dem Aufruf von presentModalViewController verschieben.

Anstatt jedoch direkt auf Steuerelemente in View Controller-Ansichten zuzugreifen, ist es besser, den URL-String als NSString-Eigenschaft (say urlString) in WebViewController zu deklarieren und vor dem Aufruf von presentModalViewController auf fileString zu setzen (und nicht) schaffen die NSURL, etc. gibt):

webViewController.urlString = fileString; 
[self presentModalViewController:webViewController animated:YES]; 

schließlich in WebViewController, in viewWillAppear: oder viewDidAppear:, erstellen Sie die NSURL (mit urlString), erstellen Sie die NSURLRequest, und rufen Sie loadrequest.

+0

Danke, das hat perfekt funktioniert. Ich dachte gar nicht daran, dass es noch nicht initialisiert war. – russ36363

+0

Danke! Dies half mir tatsächlich mit einem ähnlichen Problem, bei dem das Browser-Steuerelement leer war, bis ich mein Formular geschlossen und wieder geöffnet habe :) – Jen