我有一個UIViewController,我可以在應用程序的不同位置訪問它,第一個來自儀表板,第二個來自TabBar。這UIViewController讓用戶搜索不同的數據,但我的問題是我想保留用戶做的最後一次搜索,並顯示它,無論用戶打開UIViewController。我怎樣才能做到這一點?如何將數據保存在UIViewController的不同實例中?
0
A
回答
0
一種選擇是將最後的搜索存儲在某個全局對象中,可以從任一地點訪問它。我可能會建議使用管理最後一次搜索的單例對象。該對象可以在應用程序啓動時創建,並用於在您的UIViewController需要時檢索上次搜索。
0
你可以做一個單獨的類,如:
AppStorage.h
@interface AppStorage : NSObject
@property (strong, monatomic) NSString *lastSearch;
+(AppStorage *)sharedAppStorage;
@end
AppStorage.m
....
@synthesize lastSearch;
-(id)init{
self = [super init];
if(self)
{
//load last search from a saved file
}
}
+(AppStorage *)sharedAppStorage{
static AppStorage *sharedAppStorage = nil;
if(!sharedAppStorage){
sharedAppStorage = [[super allocWithZone:nil]init];
}
return sharedAppStorage;
}
....
然後,您可以從任何地方訪問保存搜索在App通過使用:
NSString *savedSearch = [[AppStorage sharedAppStorage] lastSearch];
如果您希望通過應用程序終止保存已保存的搜索,則應將搜索保存到NSUserDefaults或使用CoreData。這些都有據可查。
注意:我不知道你是如何保存你的搜索,所以NSString可以在上面的例子中改變爲任何你想要的。
0
每次用戶打開它時都應該創建一個新的UIViewController,並且不要通過來自單例如AppDelegate的強引用來保留它。
然後你可以像TMilligan那樣在這篇文章中創建一個單例實例,並將它傳遞給每次新的UIViewController。
這種方式是最好的照顧你的內存管理。
相關問題
- 1. 如何將實例保存在edittext中?
- 2. 如何告訴django不要在數據庫中保存實例?
- 3. 如何創建Sequelize模型實例,而不將其保存到數據庫中?
- 4. 如何將不同的調查保存到數據庫中
- 5. 如何在數據庫中保存不同的方法參數?
- 6. 需要使用xlwt將數據從一個類的多個實例保存到不同列中不同的列
- 7. 如何保存單例類的實例
- 8. 如何將結果保存在Python中的數據框的不同列中?
- 9. Android:如何不保存實例狀態?
- 10. 我可以在Android中保存活動的不同實例嗎?
- 11. 在列表中保存不同的類實例
- 12. 如何從同一個UIViewController中創建新的實例?
- 13. 將適配器的狀態保存在ListFragment的不同實例中
- 14. cakephp,如何將數據同時保存在兩個表中
- 15. 將數據保存在內存中而不是保存在數據庫中java
- 16. 如何清除保存的實例數據?
- 17. 將數據保存到數據存儲後找不到實體
- 18. 如何確保多個實例不會有數據不同步的問題?
- 19. 如何在Symfony2中將表單保存到數據庫中,而不是實體
- 20. 如何將數據保存在Firebase中已保存的數據之上?
- 21. 在Matlab中將數據保存到不同路徑中
- 22. 彈性文件系統無法在不同EC2實例之間保存數據?
- 23. Python:如何在不同類的實例之間共享數據?
- 24. 同一個UIViewController的多個實例
- 25. 如何將它保存在實體中
- 26. 如何將服務器保存的數據同步到couchbaselite中
- 27. 在GAE數據存儲中持有同一類的不同實例
- 28. OnSaveInstanceState不保存實例
- 29. django:如何將模型實例保存到另一個項目的數據庫?
- 30. 如何獲取將模型實例保存到Django的數據庫?
http://whathaveyoutried.com/ –