将多个选定表格单元格中的数组传递到下一个视图控制器

时间:2016-12-10 04:27:07

标签: ios arrays swift uitableview

我试图从表视图中将数组传递给下一个视图控制器..

这是我目前的代码。

 @IBAction func done(_ sender: Any) {
    let view = self.storyboard?.instantiateViewController(withIdentifier: "pilihtabel") as! labelpilih
        for index in 0 ... (tabelpilihan.indexPathsForSelectedRows?.count)! - 1{
        let selectedrow = tabelpilihan.indexPathsForSelectedRows?[index].row
        print(pilihan[(tabelpilihan.indexPathsForSelectedRows?[index].row)!])
        view.pilih = pilihan[selectedrow!]

    }

    self.navigationController?.pushViewController(view, animated: true)
}

它有效,但只通过我挑选的最后一行。

2 个答案:

答案 0 :(得分:3)

传递它的另一种方式

@IBAction func done(_ sender: Any) {
let view = self.storyboard?.instantiateViewController(withIdentifier: "pilihtabel") as! labelpilih

        let arrPassing = NSMutableArray()
        for index in 0 ... (tabelpilihan.indexPathsForSelectedRows?.count)! - 1{
            let selectedrow = tabelpilihan.indexPathsForSelectedRows?[index].row
            arrPassing.addObject(pilihan[selectedrow!])
            print(pilihan[(tabelpilihan.indexPathsForSelectedRows?[index].row)!])

        }
        view.pilih = arrPassing
        self.navigationController?.pushViewController(view, animated: true)

答案 1 :(得分:2)

view.pilih = pilihan[selectedrow!]行中,您将值pilihan[selectedrow!分配给下一个视图的pilih变量。

pilih不是数组类型,所以在循环结束时,最后一个值被覆盖,因此它只包含最后一个值。

要解决这个问题,你应该使它成为数组类型,并且应该附加像

这样的值

view.pilih.append(pilihan[selectedrow!])