2010-06-19 43 views
3

我有一個tableview,它顯示了一個webview點擊表中的某一行,然後從sqlite中選取數據。如果用戶在webview中查看描述時按Home鍵關閉應用程序,有時會重新打開該應用程序,我應該讓用戶看到相同的屏幕。如何再次展示相同的視圖?什麼是有效的方式?如何在應用程序重新打開時顯示相同的視圖

回答

5

嗯,我認爲最簡單的方法是將應用程序的狀態存儲在NSUserDefaults中。 UIApplication上有一個委託方法:

- (void)applicationWillTerminate:(UIApplication *)application 

當用戶退出應用程序時,會調用此委託方法。這是您可以將應用程序的狀態保存到NSUserDefaults的時間。但要注意,你不能在那裏做時間密集的東西。如果你這樣做,你會被操作系統殺死。

在你的情況下,爲什麼不只是存儲用戶在挑選NSUserDefaults的行,然後在 -(void)applicationDidFinishLaunching:(UIApplication *)application 檢查是否有保存行和approbiately恢復屏幕。

+0

所以下次我打開應用程序,我將驗證我的參數userdefaults,並顯示此視圖。我的另一個慣例會發生什麼?我做數據庫加載,用戶數據和其他事情的驗證。 。 。我應該寫代碼來顯示最後顯示的屏幕後,做所有數據庫的東西,加載通常顯示的意見? – thndrkiss 2010-06-19 16:13:53

+0

那麼一般來說,會有一些控制器對象調解從tableView到webView和數據庫的數據。在這個控制器對象中,您將處理恢復。 – GorillaPatch 2010-06-19 16:43:49

0

最簡單的方法是將一個字符串寫入文檔目錄中的一個文件,該文件以一種易於解析的格式保存您的狀態信息。例如「screen_name:database_id」。或者構建一個JSON字符串並用JSON解析它。

每次切換屏幕時,都要重新寫入文件。當您下次打開時,請閱讀該文件並進行解析,然後在您的應用中顯示相應的屏幕。

+0

如何顯示相應的屏幕?怎麼做 ?應該保存當前視圖對象並顯示相同的屏幕還是以其他方式顯示? – thndrkiss 2010-06-19 15:24:34

+0

爲什麼要解析?您可以直接將對象存儲在NSUserDefaults中。儘管如此,對於更大的數據量,文檔目錄中的文件是一個很好的解決方案。使用NSUserDefaults的 – GorillaPatch 2010-06-19 15:25:09

+4

比讀/寫/解析文件要容易得多。 – kubi 2010-06-19 15:25:46

相關問題