2016-08-19 84 views
0

我使用UIWebView一個應用程序現在越來越下面中列出的問題工作請幫我整理出來。UIWebView的重繪視圖上沒有出現,我怎樣才能避免這種情況?

  • 在我的UIWebView中,我在其中顯示了一些來自String的HTML內容。
  • 然而,當我去到另一個ViewController並返回,它變白了第二,然後再次提請我的HTML內容。

有什麼辦法可以防止這種情況發生嗎?我的html內容不會改變,所以我可以將它設置爲固定內容或更快地繪製它?

我這是怎麼設置的WebView HTML:

webView.loadHTMLString(htmlData, baseURL: nil) 
+0

當您更改視圖控制器時,您是否銷燬了您的webview? –

+0

在webview中顯示你正在加載html coten的代碼 – rptwsthi

+0

webView.loadHTMLString(htmlData,baseURL:nil) –

回答

2

你的HTML代碼沒有改變,所以把你的webView加載代碼裏面viewDidLoad代替viewDidAppear,當你view的出現,因爲viewDidAppear隨時來電,其中,作爲viewDidLoad調用時你view是負載一次。

+0

UIWebView在UITableViewCell中。所以我在cellForRowAtIndexPath中調用它。 –

+1

@TheCook然後你在'viewDidAppear'或'viewWillAppear'中重新加載'tableView',檢查並重新加載'viewDidLoad'中的數據。 –

+0

我該怎麼辦才能修復它? –

2

您可以執行它在應用程序的生命週期,一旦指揮的WebView代碼或相應定製。

// if you are navigating your application using navigation controller enables you to come back to the rootview without executing whole code of that class associated with view. 
// this doesn't apply the whole life cycle of view controller 
[self.navigationController pushViewController:vc animated:YES]; 

// if you navigating through below code this apply the whole life cycle concept of view controller. 
[self presentViewController:vc animated:NO completion:nil]; 

你必須看看關於此視圖控制器的生命週期是一個有用的apple doc

的viewController生命週期短信

  • viewDidLoad中 - 被叫當你創建類並從xib加載時。非常適合初始設置和一次性工作。

  • ViewWillAppear - 在您的視圖出現之前調用,適用於在視圖可見之前隱藏/顯示字段或您希望每次發生的任何操作。因爲您可能會在視圖之間來回切換,所以每當您的視圖即將出現在屏幕上時都會調用此視圖。

  • ViewDidAppear - 在視圖出現後調用 - 啓動動畫或從API加載外部數據的好地方。

  • ViewWillDisappear/DidDisappear - 相同的思路viewWillAppear中/ ViewDidAppear。

  • ViewDidUnload/ViewDidDispose - 在Objective C中,這是您清理和發佈內容的地方,但這是自動處理的,因此您並不需要在此處執行很多操作。

+0

感謝隊友,這篇文章真的是內容豐富:) –

+0

歡迎,也謝謝:) – vaibhav

相關問題