在我的应用程序中,我使用Web服务中的一系列作业填充tableview。每个工作都有一个我可以抓住的特定工作ID。现在,当有人从表视图中点击作业时,它们将被带到DetailsViewController,后者显示有关该作业的所有信息。到目前为止,我的代码看起来像是在详细信息视图控制器中设置作业标题:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"next"])
{
NSString *theCorrectUrlString = [NSString stringWithFormat:@"%@", theUrlString];
NSURL *url = [NSURL URLWithString:theCorrectUrlString];
NSData *data = [NSData dataWithContentsOfURL:url];
NSError *error;
NSMutableArray *jobsCallArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
for (NSDictionary *theJob in jobsCallArray)
{
DetailsViewController *detailVC = (DetailsViewController*)segue.destinationViewController;
NSString *jobPosTitle = theJob[@"position_title"];
[detailVC setJobTitleString:jobPosTitle];
}
}
}
但是,这段代码为每个单元格提供了相同的职位。我想知道如何在表格视图中选择特定的作业,并在一个页面上显示所有细节。
所有的帮助都表示赞赏,提前谢谢。
答案 0 :(得分:0)
你的代码没有多大意义。在这个小片段中,您将遍历整个数组,并为每个对象调用setJobTitleString
,但显然无论这个setJobTitleString
方法做什么,该值都会被覆盖而且您只是看到最后一个值。
for (NSDictionary *theJob in jobsCallArray)
{
DetailsViewController *detailVC = (DetailsViewController*)segue.destinationViewController;
NSString *jobPosTitle = theJob[@"position_title"];
[detailVC setJobTitleString:jobPosTitle];
}
我无法解释如何解决这个问题,因为我不知道你要做什么。在dataWithContentsOfURL
内使用prepareForSegue
检索数据很奇怪,特别是因为您要检索所有数据,但显然您只想显示一个项目的详细信息。