Objective C - 将 JSON 数据从 Tableview 传递到另一个 View Controller

Posted

技术标签:

【中文标题】Objective C - 将 JSON 数据从 Tableview 传递到另一个 View Controller【英文标题】:Objective C - Passing JSON data from Tableview to another View Controller 【发布时间】:2014-10-04 13:35:55 【问题描述】:

JSON 数据:

(

    CustDisplayName = "John Doe";
    CustID = 2;
,
    
    CustDisplayName = "Jane Doe";
    CustID = 21;
)

像联系人列表一样在 tableview 上显示数据正在工作,并且从单元格到其他视图的 segue(Push)。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath 
*)indexPath 
    [self performSegueWithIdentifier:@"pushDetailView" sender:indexPath];

现在我正在通过 prepareForSegue 传递数据

if ([[segue identifier] isEqualToString:@"pushDetailView"]) 
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

    NSLog(@"%@", indexPath);

日志只显示 0,1,2,3,这不是我想要的。我不确定最好的方法是什么。

    选择 Row get CustID 并在另一个视图的 viewDidLoad 上执行另一个请求? 选择 Row 获取该数组并将字符串传输到另一个视图?

我是ios开发的新手,希望有人能提供帮助。

【问题讨论】:

试试这个github.com/fethica/UITableViewJSON 【参考方案1】:

我猜你需要的是indexPath.row 而不是indexPath

【讨论】:

这确实提供了答案,我相信上面的人想要打印所选行,可以使用'indexPath.row'而不是'indexPath'来获得 您好 Roger Fan,感谢您的提出,但 Chandan005 对此是正确的。它实际上以某种方式有所帮助。干杯伙计们。【参考方案2】:

在目标 ViewController 的头文件中,定义一个名为 dict 的 NSDictionary 类型的属性。并将您的 Json 数据解析为具有 NSDictionary 对象的数组。

if ([[segue identifier] isEqualToString:@"pushDetailView"]) 
   UIViewController *controller = segue.destinationviewcontroller;
   controller.dict = [array objectAtIndex:indexPath.row].

【讨论】:

【参考方案3】:

假设您的数据源是一个NSArray,其中填充了Customer 对象。

首先,在您的详细视图控制器中创建一个 Customer 属性:

@property (nonatomic,strong) Customer customer;

然后,您必须在选择行时设置此属性。为此,请使用prepareForSegue 方法:

-(void) prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender

   if ([[segue identifier] isEqualToString:@"pushDetailView"]) 
      DetailViewController*destination= segue.destinationviewcontroller;
      NSIndexPath* indexPath = [tableView indexPathForCell:sender];
      destination.customer = datasource[indexPath.row];
   

确保在调用 performSegue 时将单元格设置为发送者。 确保它是的一种方法是从情节提要创建您的转场,而不是手动执行。

您可能还想使用它来轻松解析您的 JSON:https://github.com/icanzilb/JSONModel/

【讨论】:

以上是关于Objective C - 将 JSON 数据从 Tableview 传递到另一个 View Controller的主要内容,如果未能解决你的问题,请参考以下文章

如何将包含 JSON 的 JSON NSString 从 Objective C 方法传递给 Javascript 方法

将 JSON 字符串解析为对象数组 Objective C

如何在 Objective C 中形成 JSON 格式的可变数组

如何将 URL 参数添加到 JSON Web 服务调用 - Objective C

如何在 Objective c 中使用 JSON 服务发布数据

Objective C如何从嵌套的JSON中读取