我正在製作的應用程序使用UITableViewController
,並使用來自Web服務器的數據填充該表格視圖。使UITableViewController單元格在導航時不會消失
在我的viewDidLoad
我有一個方法,從所述網絡服務器加載數據,將其作爲自定義對象存儲在數組中,然後將其加載到單元格中。這工作正常。
問題:
但是,每次我瀏覽從UITableViewController
離開,然後回來,這再次加載一切時間。這是非常不必要的,所以我所做的就是在NSUserDefaults
中存儲一個boolean
,該文件會跟蹤這是否是第一次啓動應用程序。如果是(您剛剛登錄),請從服務器加載數據。如果沒有,不要。
但是,正如我注意到的,tableView
重新設置每次我離開(或回到)Controller
。此外,我存儲自定義對象的所有數組現在都是空的,所以我無法從數組中加載它。 (我每次導航回TableViewController
,它是空的)
我試圖存儲在NSUserDefaults
陣列,然後只需填充tableView
與該數據每一次,但事實證明,我不能自定義存儲對象在NSUserDefaults
。
我想實現的是:
每當我導航離開並回說:TableViewController
(我用的是SWRevealViewController
),我不希望tableView
空出來。我希望所有單元格都保持不變,這樣在加載view
和填充tableview
之間沒有等待時間。
如果這是不可能的,我想要第二好的。將數組存儲在應用程序的某個位置,然後在用戶導航回到TableViewController
時立即將該數據重新加載到tableview中。這比我的首選解決方案慢,但比從我的服務器加載所有內容更快,更少的數據消耗。
任何幫助表示讚賞!
謝謝。
您可以將您的'UITableViewController'設置爲單例實例,或者只創建一次並保存指針。然後你需要你的控制器只用指針創建一個。但是,當我得到你只是想從服務器緩存數據? 有很多方法可以做到這一點。 'NSUrlCache','NSUserDefaults','CoreData','plist'。 –
以下是我的/想要的: 1.當有人啓動應用程序時,他們必須登錄。當他們這樣做時,我想從「服務器」加載數據並填充「tableview」。 2.當有人拉下tableview時,我想讓它重新加載來自服務器的數據。 這工作正常。但是: 3.當某個人離開視圖,然後返回時,我希望'tableView'持久。我不想重新加載所有數據。 這可能嗎? – Aleksander
而不是你的viewDidLoad,嘗試在viewDidAppear中進行,因爲在添加視圖時調用該視圖,並且在視圖顯示之前它將準備好,模擬數據爲「持續」 – user2277872