Frage

Ich arbeite an einer Anwendung, die eine UIWebView verwendet, um seine Hilfedateien anzuzeigen. Die webView lebt in seiner eigenen Ansicht, DocViewController ... wenn seine so genannte

- (void)viewDidLoad {

Methode verwendet

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:   [[NSBundle mainBundle] pathForResource:docPage ofType:@"html"]isDirectory:NO]]];

die richtigen doc Seite zu laden. Sobald jedoch die erste Seite geladen wird, wird die Ansicht statisch und neue Seiten werden nicht geladen, wenn die docPage Änderungen und die Ansicht umgeschaltet werden. Gibt es eine Möglichkeit, die webView so neue Seiten laden zu löschen, wenn angefordert?

Edit:
Die erste Antwort ist verwirrend für mich. Wie ist die Routine unten funktioniert. Es ist nur so, dass es nur funktioniert einmal . Nach der Ansicht das erste Mal geladen wird ändert es nicht, wenn diese Ansicht wieder diese Option aktiviert ist und die angeforderte HTML-Seite ist anders. Die Ansicht zeigt immer die erste HTML-Seite angefordert und keine neue Anfragen laden.

 - (void)viewDidLoad {

     docPage = [NSString stringWithFormat: @"%d", hexpage];

     [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[NSBundle mainBundle] pathForResource:docPage ofType:@"html"]isDirectory:NO]]];

 }
War es hilfreich?

Lösung

viewDidLoad wird nur einmal aufgerufen, es sei denn, der Blick freigegeben und muss neu geladen werden. Dies geschieht in der Regel nur dann, wenn die View-Controller eine niedrige Speicher Warnung erhält. Statt viewDidLoad, versuchen Sie diesen Code in viewWillAppear: setzen, die jedes Mal aufgerufen wird, die Ansicht auf dem Bildschirm angezeigt wird.

Andere Tipps

Versuchen Sie es mit

- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL

Leiten ein NSURL Objekt an dem dir, dass Ihre HTML als baseURL enthält und das Laden das HTML-String mit so etwas wie

NSString *path = [[NSBundle mainBundle] pathForResource:@"myfile" 
                                                 ofType:@"html"];
NSString *html = [NSString stringWithContentsOfFile:path 
                                           encoding:NSUTF8StringEncoding
                                              error:nil];

Edit: Stellen Sie außerdem sicher, dass Ihre Hyperlinks nicht in einem neuen Fenster mit so etwas wie target = „_ blank“, Ihre webview zu öffnen versuchen wird nicht geöffnet, diejenigen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top