CoreData:如何将获取的数据从一个View控制器发送到其他视图控制器[重复](CoreData:how send fetched data from one View controller to

编程入门 行业动态 更新时间:2024-10-24 00:27:00
CoreData:如何将获取的数据从一个View控制器发送到其他视图控制器[重复](CoreData:how send fetched data from one View controller to other view controller [duplicate])

这个问题在这里已有答案:

在视图控制器之间传递数据 39答案

我正在尝试登录申请表,用户可以登录,SignIN.i成功完成将数据保存到coreData.in中。用户必须输入用户名密码。我有一个按钮signIN。输入用户名和密码后点击signIN按钮,用户可以使用他的详细信息导航到他的欢迎页面。我编写了登录代码并导航到欢迎页面它工作正常。但是当导航到欢迎页面时,我得到没有用户详细信息的空白标签。这是我的代码

- (IBAction)sginin:(id)sender { NSManagedObjectContext *managedObjectContext = [self managedObjectContext]; NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Userdetails"]; self.userData= [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy]; UserDetailViewController *userdetals = [[UserDetailViewController alloc] init]; [userdetals.usersDataArray setArray:_userData]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(userName == %@) AND (passWord == %@)", self.userNameField.text, self.userPasswordField.text]; [fetchRequest setPredicate:predicate]; self.userdata = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy]; if ([_userdata count] > 0) { UserDetailViewController *userDetailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"userpage"]; [self.navigationController pushViewController:userDetailViewController animated:YES]; NSLog(@"login success"); }

我在欢迎页面中这样做以显示用户详细信息

-(void)viewDidAppear:(BOOL)animated{ [_userFirstName setText:[_usersDataArray valueForKey:@"firstName"]]; [_userLastName setText:[_usersDataArray valueForKey:@"lastName"]]; [_userNameLable setText:[_usersDataArray valueForKey:@"userName"]]; [_password setText:[_usersDataArray valueForKey:@"passWord"]]; [_userAdress setText:[_usersDataArray valueForKey:@"adress"]]; [_userPhone setText:[_usersDataArray valueForKey:@"contactNumber"]]; [_userEmailLable setText:[_usersDataArray valueForKey:@"emailAdress"]]; [self.view setNeedsDisplay];

但欢迎页面随附空白详细信息。 我在哪里做错了。有人帮助我。

This question already has an answer here:

Passing Data between View Controllers 42 answers

i am trying to do login application form where user can signUP and SignIN.i successfully done saving data into coreData.in signIN page user has to enter username password.i have a button signIN.when click on signIN button after entering username and password,user enables to navigate to his welcome page with his details.i wrote code for login and navigating to welcome page it is working fine.but when navigating to welcome page i am getting blank labels without user details.this is my code

- (IBAction)sginin:(id)sender { NSManagedObjectContext *managedObjectContext = [self managedObjectContext]; NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Userdetails"]; self.userData= [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy]; UserDetailViewController *userdetals = [[UserDetailViewController alloc] init]; [userdetals.usersDataArray setArray:_userData]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(userName == %@) AND (passWord == %@)", self.userNameField.text, self.userPasswordField.text]; [fetchRequest setPredicate:predicate]; self.userdata = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy]; if ([_userdata count] > 0) { UserDetailViewController *userDetailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"userpage"]; [self.navigationController pushViewController:userDetailViewController animated:YES]; NSLog(@"login success"); }

i am doing this in welcome page to display user details

-(void)viewDidAppear:(BOOL)animated{ [_userFirstName setText:[_usersDataArray valueForKey:@"firstName"]]; [_userLastName setText:[_usersDataArray valueForKey:@"lastName"]]; [_userNameLable setText:[_usersDataArray valueForKey:@"userName"]]; [_password setText:[_usersDataArray valueForKey:@"passWord"]]; [_userAdress setText:[_usersDataArray valueForKey:@"adress"]]; [_userPhone setText:[_usersDataArray valueForKey:@"contactNumber"]]; [_userEmailLable setText:[_usersDataArray valueForKey:@"emailAdress"]]; [self.view setNeedsDisplay];

} but welcome page is coming with blank details. where i am doing mistake.somebody help me.

最满意答案

这是大多数初学者犯的常见错误。 你的UserDetailViewController在故事板中吗? 那么为什么要使用alloc创建视图控制器?

UserDetailViewController *userdetals = [[UserDetailViewController alloc] init]; // not required [userdetals.usersDataArray setArray:_userData]; // setting the usersDataArray on the above created instance

稍后您将从故事板中实例化,再次成为另一个实例,第二个缺少usersDataArray。

UserDetailViewController *userDetailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"userpage"]; // why you not setting array for this? [self.navigationController pushViewController:userDetailViewController animated:YES];

最后来解决方案。 这就是你所需要的

UserDetailViewController *userDetailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"userpage"]; [userDetailViewController.usersDataArray setArray:_userData]; [self.navigationController pushViewController:userDetailViewController animated:YES];

This is a common mistake most of the beginners make. Your UserDetailViewController is in storyboard right?. Then why you are creating view controller using alloc?

UserDetailViewController *userdetals = [[UserDetailViewController alloc] init]; // not required [userdetals.usersDataArray setArray:_userData]; // setting the usersDataArray on the above created instance

Later you are instantiating from the storyboard again become a different instance and second one missing the usersDataArray.

UserDetailViewController *userDetailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"userpage"]; // why you not setting array for this? [self.navigationController pushViewController:userDetailViewController animated:YES];

Finally come to the solution . This is all you need

UserDetailViewController *userDetailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"userpage"]; [userDetailViewController.usersDataArray setArray:_userData]; [self.navigationController pushViewController:userDetailViewController animated:YES];

更多推荐

本文发布于:2023-08-05 19:45:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1438040.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:控制器   发送到   视图   如何将   数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!