如何从不同的视图控制器保存数据并将其加载到iOS中的另一个视图控制器中

时间:2012-07-30 09:25:38

标签: iphone objective-c ios xcode ios5

我是iOS新手。经过很多文件我很困惑。这就是我必须要做的事情。

我有几个视图控制器,每个都有NSString值,我将在文本字段中输入并将其保存在一个公共位置,当我需要查看数据时,它将显示在UITableview中。我知道如何创建UITableview并在其中加载数据。但我必须知道如何保存和加载它。

到目前为止,我已经尝试了一些事情。如果我进入一个新的字段,旧的内容将被覆盖。我不知道从哪里开始..任何人都可以给我一步一步的逻辑(而不是代码)。所以我可以遵循这一点。

我尝试过使用NSdefaults,但效果不如预期

4 个答案:

答案 0 :(得分:4)

您可以通过多种方式保存数据

  1. 使用CoreData保存数据。你会发现如何使用CoreData
  2. 使用不带CoreData的SQLite数据库
  3. 将数据保存到您的应用代理或可从最终视图控制器访问的视图控制器
  4. 将所有viewcontrollers中的数据传递给最终的viewcontroller
  5. 将数据保存在plist中
  6. 可能性无穷无尽。什么最适合您的项目是您应该使用的。

答案 1 :(得分:2)

1 - 您可以使用app delegate界面保存常用数据。然后你可以从其他界面访问它

2 - 您可以使用NSUserDefault存储带密钥的数据

3 - 创建NSString对象,并从视图传递到另一个,将数据传递给新的NSString对象

答案 2 :(得分:1)

有两个选项可用于在不同的视图控制器中存储和检索数据。

1)NSUserDefaults是存储数据和访问任何其他视图控制器的最佳选择。

NSUserDefaults类提供了访问常用类型(如float,double,integer,Boolean)的便捷方法。默认对象必须是属性列表,即(或集合的实例组合)的实例:NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary。

这是存储和检索数据的最简单方法。

如果您想阅读有关NSUserDefaults的内容,请在此处与我分享文档。

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html

2)当您希望在类或其他视图控制器外部访问属性时,可以创建属性。

以这种方式创建属性。 @property (nonatomic, retain) NSArray *arrayData;然后您也可以在其他视图控制器中使用此数组值。

属性替换对象的访问器方法。

答案 3 :(得分:1)

使用db是更好的选择。但是,如果您只想动态地获取这些数据,那么您可以将其保存在数组中并由代理人获取这些公共数据。