如何从 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 中捕获单元格数据?
如何从 tableview 框架中调用 tableview 单元格单击事件?