如何从 uitableview 单元格调用 segue

Posted

技术标签:

【中文标题】如何从 uitableview 单元格调用 segue【英文标题】:How to call a segue from a uitableview cell 【发布时间】:2015-05-16 19:19:50 【问题描述】:

我正在使用故事板和 swift

我有一个包含表格视图的视图。使用故事板,我安排了 5 个不同的可能单元格,每个单元格都有自己的自定义类。示例粘贴在下面。

import UIKit

class AddNew_Date_Cell: UITableViewCell 

    @IBOutlet var Label: UILabel!
    @IBOutlet var textField: UITextField!

    func loadItem(var data:NSArray) 
        Label.text = data[0] as? String
    

这很有效,我可以加载视图,并且 tableview 会按照 id 期望显示单元格。上面的例子是一个标签和一个文本框。

当我选择文本字段时,我希望出现另一个弹出框, 再一次,这个视图被绘制在故事板中,并对其进行了转场。 “LoadPopover2”。

问题是如何从 UITableViewCell 类中调用 segue?

如果我尝试

self.performSegueWithIdentifier("PlayLoad", sender: self)

我得到了错误 "'AddNew_Dae_Cell' 没有名为 'performSegueWithIdentifier' 的成员

谢谢

【问题讨论】:

【参考方案1】:

- performSegueWithIdentifier:sender: 是 UIViewController 上的方法,而不是 UITableViewCell。要检测对特定单元格的点击,您最好使用 UITableViewDelegate 在- tableView:didSelectRowAtIndexPath: 上收到通知,然后在控制器中执行 segue。在您的实现中,您只需检查所选单元格以查看它是否属于特定类型,并根据该类型调用该特定 segue。

【讨论】:

嗨,我厌倦了,但是如果用户选择 tableviewcell tableView:didSelectRowAtIndexPath: 中的文本字段,它不会被调用,它只是加载键盘等 您必须设置 UITextFieldDelegate 协议来监听对文本字段所做的更改。同样,您可以将您的控制器作为委托,并使用 UITableView 的 -indexPathForRowAtPoint: 之类的内容解析执行编辑的行

以上是关于如何从 uitableview 单元格调用 segue的主要内容,如果未能解决你的问题,请参考以下文章

如何从动态 UITableView 单元格中获取 UILabel 的大小?

单元格数据未显示在 UITableView 中?

如何从具有多个单元格原型的 UITableView 中捕获单元格数据?

如何从 tableview 框架中调用 tableview 单元格单击事件?

如何从自定义 UITableview 中检索有关选择单元格的数据

对于这种边缘情况,如何检测何时从 iOS 的 uitableview 中删除单元格?