如何从 xib 中的单元格到 Storyboard 中的 VC

How to segue from a cell in xib to a VC in Storyboard

我正在创建一个包含三个 table 视图的应用(每个视图在不同的 VC 中)。我将所有内容添加到 main.storyboard,但我必须在具有三个标签的 XIB 文件中自定义一个单元格。所以我的问题是如何将 XIB 文件中单元格的转场添加到 Storyboard 中的 ViewController。

我看到这是一个答案,但我不明白: 从情节提要到 XIB

这个问题之前回答的很好:

这是它的主要内容:

let myViewController = MyViewController(nibName: "MyViewController", bundle: nil)
self.present(myViewController, animated: true, completion: nil)

或推入导航控制器

self.navigationController?.pushViewController(MyViewController(nibName: "MyViewController", bundle: nil), animated: true)

唯一真正的区别是您必须确保在 UIViewController 内进行 self... 调用。

如果您知道 customCell 的位置,那么您可以通过以下方式调用 tableView 委托以编程方式轻松实现此目的: 假设您的自定义单元格位于最后一个索引中:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    guard indexPath.row == models.count - 1 else {
        //behavior of other cell
        return
    }
    navigateToTestViewController()
}

但是如果您在 customCell 中有一个按钮,那么您必须使用委托或响应式方法将委托发送到 parentController 以执行导航。

更新: 如果您只需要使 customCell 类型的单元格可导航,那么您可以按照以下方式进行操作:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let cell = tableView.cellForRow(at: indexPath)
    guard cell is CustomCellTableViewCell else { return }
    navigateToTestViewController()
}