我是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.
}
如果我单击一个单元格,我将移动到下一个控制器。这里的想法是,所有单元格都将带我到同一个控制器唯一的区别是单元格的数量所以我想传递数据
细胞(行).number
到下一个控制器
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中使用单元格,也许他们的代码传递数组的数据或其他东西。我想用细胞。number作为构建表格时单元格的个数。我知道有一个简单的方法,就是让每个单元格指向不同的控制器,但如果我有大数据,这将花费永远。
谢谢
我想问题出在
dest.cells = selectedcell
你正试图传递1细胞对象到一个变量包含(我想,从复数)一个数组的细胞。
如果您只想传递1个单元格,只需将目标类型更改为
Cell
。如果你想传递一个单元格数组,那么你需要告诉我们使用哪个策略
如果你想在目标视图控制器中实例化与选定
cell.number
定义的数量一样多的新单元格,然后像你正在做的那样传递单元格,并在目标视图控制器中实现所需的uitableviewdelegate/datasource并实例化它们
[应该是注释但太长]