我试图从表视图中将数组传递给下一个视图控制器..
这是我目前的代码。
@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)
}
它有效,但只通过我挑选的最后一行。
答案 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!])