一 、了解Json串结构:
在修改昵称的时候需要给后台传一个ID值,还有昵称,但是我的界面上只有昵称,ID值包含在在登录的时候返回给我的Json串里面,下面首先看看返回给我的Json串结构: 在图中可看以很清晰的看出这个Json串分为两层,第一层包含两个元素,int 类型的result, Array 类型的siteUser。
二 、 创建于Json串信息对应的类,第一层的类:
第二层的类:
三 、对应好后获取的时候就能直接获取了,下面该写Json串了:login里面获取,解析JSON串,把解析好的所有内容传给下一个界面 MeViewController
NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"返回数据:%@",str);
SBJsonParser *json = [[SBJsonParser alloc] init];
//转换模型
NSDictionary *dict = [json objectWithString:str];
//外层模型
UserInfoModel *userModel = [UserInfoModel objectWithKeyValues:dict];
//用户详情模型
NSArray *array = [SiteUser objectArrayWithKeyValuesArray:userModel.SiteUser];
SiteUser *siteModel = [array firstObject];
//登录,页面跳转
MeViewController *MVC = [[MeViewController alloc] init];
MVC.siteModel = siteModel;
[self.navigationController pushViewController:MVC animated:YES];
[ShareData sharedShareData].isLogin = YES;
//在MeViewController中获取传过来的信息:
- (void)setUserInfo
{
[self.userImageView sd_setImageWithURL:[NSURL URLWithString:self.siteModel.headimage]
//这儿之所以有这个是因为在同一文件夹下,所以不需要写具体的地址,只需要把名字写出来
placeholderImage:[UIImage imageNamed:@"userImage.jpg"]
options:SDWebImageProgressiveDownload
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
/** 头像下载完成恢复修改按钮操作 */
self.changeUserImageBTN.enabled = YES;
DDLogWarn(@"修改头像按钮可操作");
}];
self.userNameUL.text = self.siteModel.nickname;
}
三 、把相应的信息传给下一个界面ModifyNameViewController,最后就能看到我们的最后昵称显示在相应的位置了:
//修改昵称模块
if(indexPath.section == 0 && indexPath.row ==0)
{
ModifyNameViewController *MNVC =[ModifyNameViewController new];
MNVC.oldName = self.userNameUL.text;
MNVC.Id = self.siteModel.Id;
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[self.navigationController pushViewController:MNVC animated:YES];
}
四 、总结
这次主要是讲的如何获取Json串,然后进行传值,主要的就是Json串的对应,这个过程整理好了其实很简单,调理也很清楚,就是一个获取Json串,解析Json串,对应起来就可以了。总而言之,只要去做就可以!