TableView、数组和segue

Posted

技术标签:

【中文标题】TableView、数组和segue【英文标题】:TableView, Array and segue 【发布时间】:2016-10-25 14:16:22 【问题描述】:

这实际上是我的第二周,我是 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 中使用单元格,也许它们是用于传递数组或其他数据的代码。我想在构建表格时使用 cells.number 作为单元格的数量。我知道通过使每个单元格指向不同的控制器的简单方法,但是如果我有大数据,它将永远需要。

谢谢

【问题讨论】:

dest.cells的数据类型是什么?它是一个单元数组吗?如果是,则不能将 Cell 实例分配给 Cells 数组 您到底遇到了什么问题? 你有什么问题? 【参考方案1】:

我猜问题出在

dest.cells = selectedcell

您正试图将 1 个 Cell 对象传递给一个包含(我想是复数形式)Cell-s 数组的变量。

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

如果您想传递一组单元格,那么您需要告诉我们使用哪种策略

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

[应该是评论,但太长]

【讨论】:

以上是关于TableView、数组和segue的主要内容,如果未能解决你的问题,请参考以下文章

使用核心数据和数组从 TableView 中插入和删除行

填充 TableView 中的 JSON 数组和 CoreData

在tableview中排序数组

在 tableview 中填充数组字典的高效和干净的方法

在 swift 中使用 tableview 和数组过滤器自动完成文本字段

使用 NSMutableDictionary 和数组填充单元格的 TableView