2009-09-24 39 views
0

我有一個UIWebView顯示和HTML頁面有一些複選框,單選按鈕。我的應用程序具有切換兩個控制器的TabBar控制器。我如何維護UIWebView的當前狀態。 (例如,我選擇了一個複選框,我改變了標籤,並轉到其他ViewController,並再次回到UIWebView.WebView重置自己,並開始...我想維護UIWebView的狀態(所有複選框單擊) ..我怎麼能做到這一點?iphone - 如何去思考UIWebView的狀態?

什麼想法?

在此先感謝

回答

2

這聽起來像您加載viewDidAppear您的Web視圖:,或者被調用每個其他一些方法如果你在viewDidLoad中加載你的web視圖,它只會被加載一次,並且當你切換標籤頁時將保持它的狀態


編輯:當我在2009年寫了這個答案後,我顯然沒有理解視圖控制器生命週期以及我想我做到了。科裏弗洛伊德是對的。 viewDidLoad:方法也可以多次調用,因爲如果未顯示視圖,UIViewController將在內存不足的情況下卸載其視圖。當用戶切換回視圖時,viewDidLoad被再次調用以重構視圖。

有多尷尬。

+1

確實如此,但需要注意的是:如果視圖控制器在視圖不在屏幕時收到內存警告,它將被破壞,並被延長失去其狀態。 – 2009-09-24 12:43:21

0

我有一個想法,這可能有助於:

  • 擺脫你的應用到網頁中的狀態,給變量的值與被叫URL請求參數,讓網頁處理,並將處理視圖相應的表單元素。
  • 從網頁獲取狀態返回到您的應用程序,讓網頁每次更新其元素時都會刷新,並使用新網址提供更改元素的新值。回到你的應用程序,你可以實現UIWebViewDelegate,並且在方法WebViewDidFinishLoad(或者你喜歡的WebViewDidStartLoad)中使用webView.request.URL來解析GET參數並相應地更新你的應用程序。

希望這會有所幫助。