单击TableView部分中的任意位置后如何执行segue?
Posted
技术标签:
【中文标题】单击TableView部分中的任意位置后如何执行segue?【英文标题】:How to perform segue after clicking anywhere in a section of TableView? 【发布时间】:2016-05-13 16:59:37 【问题描述】:在我的应用中有一个包含五个部分的 tableView。第 5 部分的标题为“注释”,单元格的文本为“单击此处添加注释”。单击单元格后,应用程序会使用 textView 转到另一个视图控制器。为了使其更加用户友好,我希望当用户单击标题标题下方的任意位置(屏幕截图中的黄色区域)时,应用程序可以转到 textView。无论如何要这样做?我的代码:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
switch indexPath.section
// case 0 - 3
case 4:
self.performSegueWithIdentifier("toTextView", sender: self)
default: break
tableview image
【问题讨论】:
“标题下方”不是您已经在处理的单元格吗?你到底在问什么?你有什么问题? 嗨 rmaddy,感谢您再次回答我的问题。我的意思是现在用户必须点击单元格。如果他们单击单元格下的其他位置,则不会发生任何事情。我不认为这是用户友好的。我希望用户单击该单元格下的任何位置,它将执行转场。这可能听起来很奇怪,但无论如何要这样做? “牢房下”是什么意思?那里不是还有一个牢房吗? 大家好,第 5 节中只有一行带有“点击添加注释”的文字。如果单击此单元格,它将转到 textView。但是在 tableView 中的这个单元格下面有行,我希望它在单击其中任何一个时也可以转到 textView。 当第 4 节中的单元格被选中时,您提供的开关不会转吗?这不是你想要的吗? 【参考方案1】:在您的didSelectRowAtIndexPath()
函数中,您可能希望在执行任何代码之前检查所选行的部分。我已经包含了一个示例条件,它将放在您的 didSelectRowAtIndexPath()
方法中。
if indexPath.section == 4
// Perform Your Segue HERE //
【讨论】:
【参考方案2】:你是说tableView的footerView吗?如果要处理 footerView 上的点击事件,请考虑在其上添加一个 tapGestureRecongizer。
func tableView(tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int)
let tapGestureRecongizer = UITapGestureRecognizer(target: self, action: #selector(handleGesture(_:)))
view.addGestureRecognizer(tapGestureRecongizer)
func handleGesture(gestureRecongnizer: UITapGestureRecognizer)
self.performSegueWithIdentifier("toTextView", sender: self)
【讨论】:
以上是关于单击TableView部分中的任意位置后如何执行segue?的主要内容,如果未能解决你的问题,请参考以下文章