选择单元格时如何执行segue?

How to perform segue when a cell is selected?


我是 Swift 的新手,我想知道当用户点击 table 视图单元格之一时如何执行 segue。

在 UITableViewCell 控制器中,我尝试键入 performSegue 并等待 Xcode 的提示,如下所示

override func setSelected(_ selected: Bool, animated: Bool) {
   if selected {
      performSegue() <- HERE
   }
   super.setSelected(selected, animated: true)
}

我找不到任何提示,所以我想我误解了这个概念。

有什么方法可以在点击单元格时执行转场吗?而且我也想向目的地发送一些数据,所以如果你能提供一种向目的地发送数据的方法就太好了。

提前谢谢你。

代码中的 Segues:

因此,首先,在点击单元格(table 视图单元格)时执行某些操作的一个好方法是使用 tableView didSelectRowAt 方法:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    // Place code you want to be performed when a cell is tapped inside of here, for example:
    performSegue(withIdentifier: "identifier", sender Any?) // Make sure your identifier makes sense and is preferably something memorable and easily recognisable.
}
  • segue identifier 只是为了让 swift/interface builder 知道你指的是哪个 segue。
  • sender 是导致执行 segue 的原因,例如 UIButton

接下来您需要准备使用以下方法在 View Controller 内部进行 segue:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    // Do any required setup for this segue such as passing in data loading required views and specifying how you want the segue to be performed such as if you want the view to be pushed, or presented as a popover etc... for example:
    if let vc = segue.destination as? ViewController { // Downcast to the desired view controller.
    // Configure the view controller here...
    }
}

注意:您还可以在界面生成器中创建转场,方法是从 UIButton 等对象中控制拖动,然后在右侧面板的属性检查器中设置转场标识符:

Interface Builder 中的 Segues:

  • 控制拖动会弹出这个菜单给你select演示:

  • 然后在屏幕右侧的属性面板中为转场设置一个identifier

  • 最后 prepare 用于视图控制器内部的转场,它将在代码中转场,就像您在代码中创建转场时所做的那样。

此视频也可能对您有所帮助,让您更清楚地了解转场以及如何执行和准备转场等: https://youtu.be/DxCydBmOqXU