如何Store
用户在ios中输入详细信息和Get it Back
我有以下 TextFields
:
UserName
,Email
,Re-enter Email id
,Phone
,
State
,Address
,Locality
和Pincode
。
我想 store
本地 Current viewController
中的此详细信息
display
Next ViewController
....
How many Ways
我可以 Store
和 Fetch
详情,有没有人知道在哪里可以找到更多相关信息吗?
答案 0 :(得分:1)
您是否希望保持用户信息持久性(1)或者您只需要表示该数据并发送到电子邮件(2)? 1.如果您需要使用Core Data在持久存储中保存用户信息,则必须使用您的属性创建名为“User”的实体(名称,中间名,姓氏,用户名,电子邮件,重新输入电子邮件ID,电话,州,地址,locality和pincode) - 所有这些字段都可以是字符串类型。在“编辑器”选项卡的帮助下,您应该为您的实体创建NSManagedObject子类。与使用textFields的VC相比,您需要为User实例的属性填充这些数据并保存。而且您可以检索到您想要的位置并为用户显示 2.如果您只需要显示和发送到电子邮件的用户信息,您可以通过使用NSUserDefaults使其变得更简单:
//保存
[[NSUserDefaults standardUserDefaults] setObject:textFieldName.text forKey:@"name"];
//获取数据
[[NSUserDefaults standardUserDefaults] valueForKey:@"name"];
或者,如果需要始终保留此信息,并且只需要一个应用程序启动会话 - 只需通过textFields的text属性值设置ViewControllerWhereYouWantToPresentInfo的公共属性。
答案 1 :(得分:0)
我建议您创建变量并将数据存储在那里。一旦准备好转到下一个视图控制器,就可以以这种方式将数据传递给下一个视图控制器
let nextVC = self.storyboard!.instantiateViewControllerWithIdentifier("NextVCStoryBoardId") as! NextVCViewController
nextVC.variable1 = variable1 //variable1 is in currentVC
nextVC.variable2 = variable2 //variable2 is in currentVC
依旧......
然后您可以使用此代码
推送到nextVCself.navigationController!.pushViewController(nextVC, animated: true)
在nextVC中,您可以对按钮执行操作以将数据发送到邮件。
答案 2 :(得分:0)
如果用户数据正确存储在核心数据中,您可以使用NSFetchedResultsController(FRC)或简单的NSFetchRequest来检索它。在这两种情况下,您都将为“用户”实体创建NSFetchRequest,并为其分配NSPredicate。谓词的定义类似于SQL查询。 NSFetchRequest将检索与谓词匹配的任何托管对象。
您可以考虑将这些参数作为参数或公共属性传递给第二个viewController,而不是将它们提取并存储在CoreData中。 CoreData非常适合在需要查询时将数据保存在磁盘上(如SQL数据库)。当需要频繁更新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];