两个表视图在一个视图控制器swift与swift2.0中的didSelectRowAtIndexPath

时间:2016-11-08 03:40:15

标签: swift uitableview didselectrowatindexpath

我在一个视图控制器中有两个表视图。我们假设表格为table1和table2。当我在table1中选择一行时,我想更改table2中的数据。我怎么做? (我不能使用segue标识符,因为这些表在一​​个窗口中)

我的代码如下。在我的table1中我有lesson1数组。在table2中我有Lessons2数组。所以现在我想点击table1的第二行,并在table2.likewise中显示资源数组中的数据。你可以帮我解释一下代码吗。我试过如下。但我知道这完全错了

 let Resources = ["Word Doc on Probability", "Extra Sums", "Homework","",""]

 let lessons1 = ["Term1", "Term2"," Term3"]

 let Lessons2 = ["Create a set theory", "Draw Ven Diagrams", "iOS Developer Tips"]

  func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// Return the number of items in the sample data structure.

var count:Int?

if tableView.tag == 3 {
    count = lessons1.count
}
 else if tableView.tag == 4 {
    count = Lessons2.count
} return count!


}
       func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

var cell:UITableViewCell?

if tableView.tag == 3 {
    cell = tableView.dequeueReusableCellWithIdentifier("TextCell3", forIndexPath: indexPath)

    let row = indexPath.row
    cell!.textLabel!.text = lessons1[row]

}

 else if tableView.tag == 4 {
    cell = tableView.dequeueReusableCellWithIdentifier("TextCell4", forIndexPath: indexPath)

    let row = indexPath.row
    cell!.textLabel!.text = Lessons2[row]

}

return cell!
}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
  ////this code is wrong/////
let row = indexPath.row
if tableView.tag == 3 {
    if indexPath.row == 1 {
        let cell = tableView.dequeueReusableCellWithIdentifier("TextCell4", forIndexPath: indexPath)


        cell.textLabel!.text = Objectives[row]
        lessons.reloadData()

    }

}

2 个答案:

答案 0 :(得分:0)

tableView反映了模型中存储的数据。在table1中选择行后,更新table2模型中的数据,然后调用table2.reloadData()

@IBOutlet tableView1: UITableView!
@IBOutlet tableView2: UITableView!

let Resources = ["Word Doc on Probability", "Extra Sums", "Homework","",""]

let lessons1 = ["Term1", "Term2"," Term3"]

let Lessons2 = ["Create a set theory", "Draw Ven Diagrams", "iOS Developer Tips"]

var dataForTable1 = [String]()
var dataForTable2 = [String]()

override func viewDidLoad() {
    super.viewDidLoad()
    dataForTable1 = lessons1
    dataForTable2 = Lessons2
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // Return the number of items in the sample data structure.

    var count = 0

    if tableView.tag == 3 {
        count = dataForTable1.count
    }
    else if tableView.tag == 4 {
        count = dataForTable2.count
    }

    return count

}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    var cell:UITableViewCell?

    if tableView.tag == 3 {
        cell = tableView.dequeueReusableCellWithIdentifier("TextCell3", forIndexPath: indexPath)

        let row = indexPath.row
        cell!.textLabel!.text = dataForTable1[row]

    }

    else if tableView.tag == 4 {
        cell = tableView.dequeueReusableCellWithIdentifier("TextCell4", forIndexPath: indexPath)

        let row = indexPath.row
        cell!.textLabel!.text = dataForTable2[row]

    }

    return cell!
}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    tableView.deselectRowAtIndexPath(indexPath, animated: true)

    let row = indexPath.row
    if tableView.tag == 3 {
        if indexPath.row == 1 {
            dataForTable2 = Resources
            tableView2.reloadData()

        }
    }
}

答案 1 :(得分:0)

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
    tableView.deselectRowAtIndexPath(indexPath, animated: true)

    if tableView.tag == 3 
    {
        if indexPath.row == 1 
        {
            Lessons2 = Resources
            lessons.reloadData() //table2 is data reload
        }
    }
}