2015-10-09 48 views
0

假设我的第一个表控制器由一个简单的数组填充。将简单数组连接到嵌套数组逻辑混淆

var number = ["one", "two", "three"]. 

然后我的第二个表控制器填充嵌套数组。

var letter = [["a", "b", "c"], ["d", "e", "f"], ["g", "h", "I"]] 

如果用户选择“一个”中的第一台控制器中,用户将能够看到信数组项“A,B,C”。在第二台控制器。 “two”和“d,e,f”等也是一样。 我知道索引路径是指一个部分和行...但这里是我的逻辑紧张的地方。

让我试着解释我的困惑。所以从理论上讲,我在数组中选择了“三”。据我的理解,这会给我一个[0] [2]的索引路径...第0行第2行。考虑到这一点,我唯一需要处理的实际值是2,这是一行值。因此,我该如何将这个纯粹的行值与字母数组中的嵌套数组/段连接起来?

+0

我对swift不太熟悉,但逻辑如下。将第一个控制器中单击的表格单元格的索引路径传递给第二个控制器 - 然后通过objectAtIndex :(过去的索引路径)进行检查。 – MatthewJames

回答

0

与大多数编程语言,在迅速数组中的第一项是0

let array = [1,2,3] 
array[0] // array[0] = 1 

因此,当你的2列值,并得到

number[indexpath.row] //this will return "three" 

你将能够使用与你的信阵相同

letter[indexpath.row] //will return ["g", "h", "I"] when row = 2 

你也应该能够看到当你点击第三行在你的UITableView它会返回2为indexpath.row

0

Swift带集合类型的Dictionary.Dictionaries是键值关联的无序集合。 与数组不同,您可以为每个值设置索引值。

var arr1=["a","b","c"] 
var arr2=["d","e","f"] 
var arr3=["g","h","i"] 
var dict = ["one":arr1,"two":arr2,"three":arr3] 
print(dict["one"]) // access the dictionary through its key value 

输出将是[ “A”, “B”, “C”]

如果你想在斯威夫特阅读更多关于词典,您可以参考以下链接。 https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html

你的情况

可以初始化两个数组

var keys=["one","two","three"]; 
var arr1=["a","b","c"] 
var arr2=["d","e","f"] 
var arr3=["g","h","i"] 
var dict = ["one":arr1,"two":arr2,"three":arr3] 

可以填充的关键字数组的第一个表视图。 之后,你可以得到选择的值从没有选择的方法来获取数组值来填充你的第二个表视图

var selectedStr = "one" 
var newArr = dict[selectedStr]//use this array to populate 2nd Table View. 

希望它能帮助。 快乐编码..!