我有一个带按钮的控制器和一个带有10个数组的TableViewController
。每个按钮都有一个索引,传递给TableViewController
。
在TableViewController
代码中如下所示:
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if buttonIndex == 0 {
return array0.count
}
else if buttonIndex == 1 {
return array1.count
}
else if buttonIndex == 2 {
return array2.count
}
else if buttonIndex == 3 {
return array3.count
}
else if buttonIndex == 4 {
return array4.count
}
else if buttonIndex == 5 {
return array5.count
}
else if buttonIndex == 6 {
return array6.count
}
else if buttonIndex == 7 {
return array6.count
}
else if buttonIndex == 8 {
return array6.count
}
return array0.count
}
我想自动定义当前索引来执行此操作:
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//return array(currentIndex).count
}
怎么做?
答案 0 :(得分:1)
您可以将嵌套数组放在存储数组的位置,如:
var mainArray = [array0,array1,array2 ... ]
然后在
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return mainArray[section].count
}
答案 1 :(得分:1)
实现目标的一种方法是创建一个地图,其中索引为键,数组为值。
所以你的代码应该是这样的:
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return indicesArray[index].count
}
答案 2 :(得分:1)
您必须在数组中收集数组,并且可以根据需要返回。
在班级:
var arrOfArrayData = []
就像那样:
let array0 = [""]
let array1 = [""]
let array2 = [""]
let array3 = [""]
let array4 = [""]
let array5 = [""]
let array6 = [""]
arrOfArrayData = [array0,array1,array1,array3,array4,array5,array6]
return arrOfArrayData[section].count //numberOfRowsInSection
答案 3 :(得分:1)
您的列表包含10个值作为数组:
let listData = [["value11", "value12"], ["value21", "value22"], ["value31", "value32"] ...]
在UITableViewDataSource委托方法中:
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return listData[section].count
}