TableView,Array和segue

时间:2016-10-25 14:16:22

标签: ios arrays swift uitableview segue

我是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作为构建表时的单元格数。我知道通过使每个单元指向不同的控制器的简单方法,但如果我有大数据,它将需要永远。

谢谢

1 个答案:

答案 0 :(得分:0)

我猜问题是

dest.cells = selectedcell

您正在尝试将1个Cell对象传递给包含(我猜想,从复数形式)Cell-s数组的变量。

  • 如果您只想传递1个单元格,只需将目标类型更正为Cell

  • 如果您想传递一系列单元格,那么您需要告诉我们哪个政策

  • 如果要在目标视图控制器中实例化与所选cell.number定义的数量一样多的新单元格,然后按原样传递单元格,并在目标视图控制器中实现所需的uitableviewdelegate / datasource并实例化它们。

[应该是评论但是太长了]