我是swift的初学者,这实际上是我的第二周。我试图通过构建简单的代码来教我自己。
我使用类和数组构建表,
var cell = [Cell]()
override func viewDidLoad() {
super.viewDidLoad()
cell = [
Cell(Title:"cell1", number: 5),
Cell(Title:"cell2", number: 3),
Cell(Title:"cell3", number: 4),
]
// Do any additional setup after loading the view, typically from a nib.
}
如果我单击其中一个单元格,我将移动到下一个控制器。在这里的想法,所有单元格将把我带到同一个控制器,唯一的区别是单元格的数量,所以我想传递数据
细胞[行]。数
到下一个控制器
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "next" {
if let indexPath = tableView.indexPathForSelectedRow {
let selectedcell = cell[indexPath.row]
let dest = (segue.destination as! UINavigationController).topViewController as! DetailViewController
dest.cells = selectedcell
}}
我的问题是我无法在DetailViewController中使用单元格,也许它们是用于传递数组或其他数据的代码。我想使用cells.number作为构建表时的单元格数。我知道通过使每个单元指向不同的控制器的简单方法,但如果我有大数据,它将需要永远。
谢谢
答案 0 :(得分:0)
我猜问题是
dest.cells = selectedcell
您正在尝试将1个Cell对象传递给包含(我猜想,从复数形式)Cell-s数组的变量。
如果您只想传递1个单元格,只需将目标类型更正为Cell
。
如果您想传递一系列单元格,那么您需要告诉我们哪个政策
如果要在目标视图控制器中实例化与所选cell.number
定义的数量一样多的新单元格,然后按原样传递单元格,并在目标视图控制器中实现所需的uitableviewdelegate / datasource并实例化它们。
[应该是评论但是太长了]