Swift - 从自定义单元格和单元格数据传递到另一个控制器

Posted

技术标签:

【中文标题】Swift - 从自定义单元格和单元格数据传递到另一个控制器【英文标题】:Swift - segue from custom cell and cell data passing to another controller 【发布时间】:2015-03-14 12:07:53 【问题描述】:

在尝试将数据从 tableview 自定义单元格传递到另一个 viewcontroller 时,我被困了几个小时。

更准确地说:

TableViewController1 将 CustomCell1 作为 Prototype Cell 类

CustomCell1 有 Button1、Button2、Label1 和 Label2

ViewController2 有 Label3

TableViewController1 填充良好,有 10-20 行数据,所有内容都在屏幕上正常显示。

当用户点击 Button1 或 Button2 时(据我所知,这会触发按钮的 IBAction 而不是选择行)我以编程方式从添加到 TableViewController1 的按钮的 IBAction 触发一个 segue。

我想不通的是当用户点击 Button1 时如何传递 Label1 文本,当用户点击 Button2 到 ViewController2 时如何传递 Label2 文本并在 Label3 中显示适当的文本。

由于 tableview 中没有选择行,如果可能的话,如何做到这一点?

谢谢!

科斯塔斯

【问题讨论】:

有一种既快速又便宜的方法 - 为按钮设置标签以根据行索引,例如 1001、1002 - 用于 button1 和 2001、2002.. 等用于 button2 【参考方案1】:

确保您已正确准备好转场。这是我第一次尝试时的挂断。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
    if (segue.identifier == "showTea")
        let selectedIndexPath:NSIndexPath = self.tableView.indexPathForSelectedRow()!
        let genView:genViewController = segue.destinationViewController as! genViewController
        genView.row = selectedIndexPath.row

    
    else if (segue.identifier == "addTea")

    

然后在我的 genViewController 中,我添加了 var 行来保存该行的值,因此当我在 genViewController 中提取数据时,它会提取正确的数据。

var row: Int = 0

请参阅我关于此主题的问题,希望对您有所帮助。 core data swift sugue not pushing data to second view controller

【讨论】:

以上是关于Swift - 从自定义单元格和单元格数据传递到另一个控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中将值从自定义单元格设置/传递到视图控制器

从自定义表格视图单元格获取数据到另一个 VC?

具有自定义单元格和多节数组数据的 Swift UITableView

将数据从自定义表格视图单元格传递到 UIView 控制器

SWIFT:从自定义单元格中的 UIswitch 展开/折叠自定义单元格

将数组从自定义单元格发送到另一个视图控制器