在表视图中将对象数组传递给动态单元格

时间:2014-04-08 14:05:49

标签: ios uitableview nsarray

我使用了具有动态原型单元格的表格视图。

我在表格视图中创建了一个样本行,其中包含四个数量值:

Title
Min Value
Max Value
Current value.

我已经创建了表视图控制器和表视图单元类,用于在我的代码中访问这些属性。

现在我必须动态设置值。我可以看到人们建议分别为每个值传递值数组。

像:

标题的数组1:将显示行中所有项目的标题 数组2为最小值等等.....

是否有一种方法可以将一组对象传递给表视图,并创建表。

请建议。

2 个答案:

答案 0 :(得分:0)

不,您无法将数组直接传递给表。您的表视图控制器通常会维护该数组(通常是包含字典或自定义类实例的单个数组),并且表视图控制器中的代码使用该数组来配置单元格。

答案 1 :(得分:0)

  

我可以看到人们建议分别为每个值传递值数组。

不要这样做是非常差的方法,而是创建一个NSDictionnaries的数组,例如:

_listOfValue =
@[
@{@"Title":@"title 1", @"Min Value":@"0", @"Max Value":@"100", @"Current value":@"50"},
@{@"Title":@"title 2", @"Min Value":@"4", @"Max Value":@"90", @"Current value":@"60"},
@{@"Title":@"title 3", @"Min Value":@"6", @"Max Value":@"70", @"Current value":@"70"}
];

这样可以轻松检索所需的数据,因为它们没有分开。

numberOfRowsInSection中,您可以返回[self.listOfValue count]

cellForRowAtIndexPathdidSelectRowAtIndexPath中,您可以轻松地在IndexPath处获取字典,然后解析每个键的值。

//Get the specific value
NSDictionnary *valueDict = _listOfValue[indexPath.row];

//read data from value dictionary
valueDict[@"Title"];
//or the old syntax 
[valueDict objectForKey:@"Title"];