gpt4 book ai didi

ios - 如何从tableViewCell的类中回调tableView的类中的函数

转载 作者:行者123 更新时间:2023-11-30 12:40:40 27 4
gpt4 key购买 nike

我有一个TableView。在该 tableView 中,我自定义了它的单元格 like this

在这个单元格中我有两个部分。一个图像和一个文本字段。它看起来像 Facebook 的帖子状态。当我单击图像时,我想打开一个新的 ViewController,对于 TextField 也是如此

但是我有一个问题,我无法从单元格的类文件中调用 segue。

  1. 有什么方法可以从 TableViewCell 类 调用 TableViewController 类 中的函数吗?

我知道我可以使用delegate,但我不太喜欢这种方式,因为如果我这样做,我必须在中设置很多delegate我的项目。

  • 是否有更好的方法直接从 TableViewCell 类 呈现新的 ViewController
  • 最佳答案

    使用委托(delegate)是解决问题的一个非常好的方法。

    如果您不喜欢该解决方案,那么您可以设计一个 TableView 单元格,该单元格具有由 View Controller 设置的闭包属性,并在按下按钮时调用该闭包。

    编辑:

    另一种选择是将自定义单元格中的按钮操作留空,但仍将 socket 连接到按钮。

    然后在您的 cellForRow(at:) 方法中,安装一个以您的 View Controller 为目标的 IBAction。 (感谢@SoanSani,他的答案如下)

    在该 IBAction 方法中,您可以使用按钮的坐标来计算出包含被点击按钮的单元格的索引路径。

    我创建了 UITableView 的扩展,可以让您找出包含任何 View 的单元格。代码如下:

    import UIKit

    public extension UITableView {

    /**
    This method returns the indexPath of the cell that contains the specified view

    - Parameter view: The view to find.

    - Returns: The indexPath of the cell containing the view, or nil if it can't be found

    */

    func indexPathForView(_ view: UIView) -> IndexPath? {
    let origin = view.bounds.origin
    let viewOrigin = self.convert(origin, from: view)
    let indexPath = self.indexPathForRow(at: viewOrigin)
    return indexPath
    }
    }

    关于ios - 如何从tableViewCell的类中回调tableView的类中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42264628/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com