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 中的 JSON 数组和 CoreData