如何存储用户input的详细信息,并返回到ios?
如何Store
用户input的详细信息,并将Get it Back
恢复到ios?
-
我有以下的
TextFields
: -
UserName
,Email
,Re-enter Email id
,Phone
,State
,Address
,Locality
和Pincode
。 -
我想在
Current viewController
本地store
这个细节,并display
Next ViewController
…. -
How many Ways
可以Store
和Fetch
细节,有谁知道在哪里可以find更多关于这方面的信息?
你想保持用户信息持久性(1),或者你需要这些数据来表示它,并发送到电子邮件(2)?
1.如果您需要使用Core Data将用户信息保存在持久存储中,则必须使用您的属性(名称,中间名,姓氏,用户名,电子邮件,重新input电子邮件ID,电话,州,地址)创build名为“User”的实体,locality和pincode) – 所有这些字段可以是stringtypes。 比在“编辑器”选项卡的帮助下,您应该为您的实体创buildNSManagedObject子类。 比在你的VC与textFields你需要填写这些数据为用户实例的属性并保存它。 而且比你可以检索你想要的和显示给用户。
2.如果你需要用户信息来显示和发送邮件,你可以使用NSUserDefaults来简化它:
//保存
[[NSUserDefaults standardUserDefaults] setObject:textFieldName.text forKey:@"name"];
//获取数据
[[NSUserDefaults standardUserDefaults] valueForKey:@"name"];
或者,如果需要随时保存这些信息,只需要一个应用程序启动会话,只需通过textFields的text属性值设置ViewControllerWhereYouWantToPresentInfo的公共属性即可。
我build议你创buildvariables并将数据存储在那里。 一旦准备好进入下一个视图控制器,就可以以这种方式将数据传递给下一个视图控制器
let nextVC = self.storyboard!.instantiateViewControllerWithIdentifier("NextVCStoryBoardId") as! NextVCViewController nextVC.variable1 = variable1 //variable1 is in currentVC nextVC.variable2 = variable2 //variable2 is in currentVC
等等…
然后你可以用这个代码推到下一个VC
self.navigationController!.pushViewController(nextVC, animated: true)
在下一个VC中,你为button发送数据到邮件的动作。
如果用户数据正确存储在核心数据中,则可以使用NSFetchedResultsController(FRC)或简单的NSFetchRequest来检索它。 在这两种情况下,您都会为您的“用户”实体创build一个NSFetchRequest,并为其分配一个NSPredicate。 谓词的定义类似于SQL查询。 NSFetchRequest将检索任何与谓词相匹配的托pipe对象。
您可能会考虑将这些参数作为参数或公共属性传递到第二个viewController,而不是将它们提取并存储在CoreData中。 当数据需要被查询时(比如SQL数据库),CoreData非常适合在磁盘上保存数据。 当UI需要频繁更新以反映持久数据的变化时,这也很有用。 您可以使用NSFetchedResultsContoller来监视对数据模式的更改,并自动通知UI层这些更改。
使用NSFetchRequest的例子,它是最简单的方法来做你所要求的。 它假定你有一个名为“UserDetails”的实体,它有一个名为“user_id”的属性来标识一个特定的用户
// A pointer to your main thread context, since you will be using this info to // populate data on the UI. I typically use a singleton pattern to access my // managed object context NSManagedObjectContext *context = [DBController sharedInstance].mainManagedObjectContext; // Create the fetch request NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"UserDetails"]; // Assign the predicate fetchRequest.predicate = [NSPredicate predicateWithFormat:@"user_id = %@",<the_users_id>]; // Execute the fetch request on the main thread managed object context NSError *error = nil; NSArray *objects = [context executeFetchRequest:fetchRequest error:&error]; UserDetail *detail = [object firstObject];