TableViewController numberOfRowsInSection部分

时间:2017-08-18 08:35:08

标签: ios swift

我有一个带按钮的控制器和一个带有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
    }

怎么做?

4 个答案:

答案 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
    }