【问题标题】:TableView, Array and segueTableView、数组和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 数组
  • 您到底遇到了什么问题?
  • 你有什么问题?

标签: ios arrays swift uitableview segue


【解决方案1】:

我猜问题出在

dest.cells = selectedcell

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

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

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

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

[应该是评论,但太长]

【讨论】:

    猜你喜欢
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    相关资源
    最近更新 更多