我有一個tableview,它顯示了一個webview點擊表中的某一行,然後從sqlite中選取數據。如果用戶在webview中查看描述時按Home鍵關閉應用程序,有時會重新打開該應用程序,我應該讓用戶看到相同的屏幕。如何再次展示相同的視圖?什麼是有效的方式?如何在應用程序重新打開時顯示相同的視圖
回答
嗯,我認爲最簡單的方法是將應用程序的狀態存儲在NSUserDefaults中。 UIApplication上有一個委託方法:
- (void)applicationWillTerminate:(UIApplication *)application
當用戶退出應用程序時,會調用此委託方法。這是您可以將應用程序的狀態保存到NSUserDefaults的時間。但要注意,你不能在那裏做時間密集的東西。如果你這樣做,你會被操作系統殺死。
在你的情況下,爲什麼不只是存儲用戶在挑選NSUserDefaults的行,然後在 -(void)applicationDidFinishLaunching:(UIApplication *)application
檢查是否有保存行和approbiately恢復屏幕。
最簡單的方法是將一個字符串寫入文檔目錄中的一個文件,該文件以一種易於解析的格式保存您的狀態信息。例如「screen_name:database_id」。或者構建一個JSON字符串並用JSON解析它。
每次切換屏幕時,都要重新寫入文件。當您下次打開時,請閱讀該文件並進行解析,然後在您的應用中顯示相應的屏幕。
如何顯示相應的屏幕?怎麼做 ?應該保存當前視圖對象並顯示相同的屏幕還是以其他方式顯示? – thndrkiss 2010-06-19 15:24:34
爲什麼要解析?您可以直接將對象存儲在NSUserDefaults中。儘管如此,對於更大的數據量,文檔目錄中的文件是一個很好的解決方案。使用NSUserDefaults的 – GorillaPatch 2010-06-19 15:25:09
比讀/寫/解析文件要容易得多。 – kubi 2010-06-19 15:25:46
- 1. 當重新打開應用程序時警報不顯示
- 2. 打開新視圖iOS應用程序
- 3. 在應用程序啓動時打開相機視圖(iOS6)
- 4. 如何打開相同的應用程序,而無需打開新的實例,當應用程序在後臺
- 5. 重新打開應用程序,不顯示以前的活動
- 6. 如何在每次打開應用程序時重新啓動應用程序?
- 7. 如何在應用程序結束時打開顯示器?
- 8. 如何重新打開應用程序的窗口時,Xcode
- 9. 如何在UWP應用程序打開時顯示生成的圖像?
- 10. 僅在應用程序打開時重新加載視圖再次
- 11. 重新打開應用程序後,UIToolbar超級視圖佔用整個視圖
- 12. 當應用程序爲ios打開時刷新視圖
- 13. Android - 如何停止顯示通知時打開應用程序
- 14. iPhone應用程序開發 - 如何重新加載(?)視圖?
- 15. 應用程序在相同的活動問題上重新打開
- 16. SQLiteDatabase只在應用程序重新打開時更新
- 17. AppStore顯示相同的應用程序
- 18. 當退出並重新打開應用程序時,不顯示聊天消息
- 19. 在不同頁面關閉/重新打開iPhone應用程序
- 20. 檢測應用程序重新打開?
- 21. 如何重新打開最後一個視圖,然後在iOS中終止後打開應用程序
- 22. 如何在應用程序重新打開時重置本地通知
- 23. 如何在相同的視圖中打開相機
- 24. NStimer倒計時顯示應用程序重新打開時的舊時間 - iphone拍攝屏幕圖像?
- 25. 如何重新加載/重新打開相同的窗體C#
- 26. 如何在登錄後重新打開應用程序
- 27. 在wpf應用程序中打開視圖時的延遲
- 28. 指示應用程序在哪個視圖上加載打開?
- 29. 如何在打開應用程序時自動錄製視頻?
- 30. 如何在每次用戶打開應用程序時使不同的字符串顯示不同的文本?
所以下次我打開應用程序,我將驗證我的參數userdefaults,並顯示此視圖。我的另一個慣例會發生什麼?我做數據庫加載,用戶數據和其他事情的驗證。 。 。我應該寫代碼來顯示最後顯示的屏幕後,做所有數據庫的東西,加載通常顯示的意見? – thndrkiss 2010-06-19 16:13:53
那麼一般來說,會有一些控制器對象調解從tableView到webView和數據庫的數據。在這個控制器對象中,您將處理恢復。 – GorillaPatch 2010-06-19 16:43:49