如何将从 json 检索到的数据从一个视图传递到另一个视图? [复制]

Posted

技术标签:

【中文标题】如何将从 json 检索到的数据从一个视图传递到另一个视图? [复制]【英文标题】:How can i pass data retrieved from json from one view to another view? [duplicate] 【发布时间】:2017-01-22 02:48:45 【问题描述】:

下面是我的代码,我用来从谷歌帐户获取数据,我想在其他视图中使用电子邮件地址作为登录ID。

此代码在我的FirstViewController 中,我想在另一个视图中使用电子邮件。

请帮忙:)

- (void)finishedWithAuth:(GTMOAuth2Authentication *)auth
               error:(NSError *)error 
if (error) 
    return;



NSString  *accessTocken = [auth valueForKey:@"accessToken"]; // access tocken pass in .pch file

NSLog(@"%@",accessTocken);
NSString *str=[NSString stringWithFormat:@"https://www.googleapis.com/oauth2/v1/userinfo?access_token=%@",accessTocken];
NSString *escapedUrl = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@",escapedUrl]];
NSString *jsonData = [[NSString alloc] initWithContentsOfURL:url usedEncoding:nil error:nil];
NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:[jsonData dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:&error];
NSString *userId=[jsonDictionary objectForKey:@"email"];

NSLog(@" user data %@",jsonData);
NSLog(@"Received Access Token:%@",auth);
NSLog(@"email id : %@ ",userId);

GTLServicePlus* plusService = [[GTLServicePlus alloc] init];
plusService.retryEnabled = YES;
[plusService setAuthorizer:auth];
GTLQueryPlus *query = [GTLQueryPlus queryForPeopleGetWithUserId:userId];

[plusService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,GTLPlusPerson *person,NSError *error) 
    if (error) 
        GTMLoggerError(@"Error: %@", error);
     else 
        // Retrieve the display name and "about me" text
       // [person retain];
        NSString *description = [NSString stringWithFormat:
                                 @"%@\n%@", person.displayName,
                                 person.aboutMe];
        GTLPlusPersonImage *image  =person.image;
        NSString *strimag=[image valueForKey:@"url"];

        // [self setImageFromURL:[NSURL URLWithString:strimag]];
        NSData *receivedData = [NSData dataWithContentsOfURL:[NSURL URLWithString:strimag]];

        UIImage *img = [[UIImage alloc] initWithData:receivedData ];
        receivedData=UIImageJPEGRepresentation(img,50);
        NSLog(@"description %@",description);
    
];
 if ([GPPSignIn sharedInstance] == true) 
   [self performSegueWithIdentifier:@"pass" sender:self];
      

  [[GPPSignIn sharedInstance] signOut];
 

【问题讨论】:

你能显示prepareforsegue的使用代码吗,或者你能给出你的目标ViewController的名字吗? @NiravD CreatePasswordViewController 它是,当从谷歌帐户获取值并且我想使用电子邮件创建新帐户时,我必须导航到此。 【参考方案1】:

以下是一些在应用程序中保存数据的方法。

    使用sqlitecoredata创建本地数据库都提供了将数据保存在本地的功能,使用前请找出使用这些数据库的不同情况。 使用 NSUserDefaluts 但不推荐使用,因为 NSUserDefaults 并不意味着存储敏感信息以获取更多信息,请参阅 imp link 如果您仍然使用,请参见示例。

使用 NSUserDefaluts 存储数据:

[[NSUserDefaults standardUserDefaults]setObject:self.textfield.text forKey:@"yourKey"];

在应用内的任何地方获取数据:

object = [[NSUserDefaults standardUserDefaults] valueForKey:@"yourKey"];

【讨论】:

我应该把这段代码放在哪里? 保存从viewController 输入的电子邮件地址,并使用yourKey 从应用程序中的任何位置获取电子邮件,请参阅我的回答。

以上是关于如何将从 json 检索到的数据从一个视图传递到另一个视图? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将从服务接收到的 json 数据传递到 Angular 4 的角材料组件中的数组

如何使用 post 方法将 JSON 数据从登录功能传递到另一个视图控制器?

将从 HTTP 请求数据声明的数据/变量传递到另一个视图控制器

将从 spring-boot 检索到的数据转换为 JSON 并在 Angular 前端获取它

如何将数据从一个单元格传递到另一个视图?

如何将 JSON 值从一个 ViewController 传递到另一个