【问题标题】:How to perform segue after clicking anywhere in a section of TableView?单击TableView部分中的任意位置后如何执行segue?
【发布时间】: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 节中的单元格被选中时,您提供的开关不会转吗?这不是你想要的吗?

标签: ios swift uitableview segue didselectrowatindexpath


【解决方案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)
        }
    

    【讨论】:

      猜你喜欢
      • 2012-05-25
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 2016-04-20
      • 1970-01-01
      相关资源
      最近更新 更多