【问题标题】:Get data when tableview item clicked单击 tableview 项目时获取数据
【发布时间】:2021-02-22 15:47:13
【问题描述】:

我有一个 TableView,在里面我有另一个 TableView,其中每个单元格都包含一个开关。

当我点击那个开关时,我想将该单元格的数据发送到我的视图控制器。我怎样才能做到这一点?

这是我的方法:

我创建了一个协议,将点击的位置从内部 TableView 发送到外部 TableView,但我无法获得完整的对象,我不知道如何进一步处理。

点击了内部 TableView 单元格开关:

@IBAction func switchClicked(_ sender: UISwitch) {
//position clicked
   print("inside cell clicked>>\(sender.tag)")
    cellDelegate?.tableViewCellClicked(position: sender.tag, type: 
 "SwitchClicked")
}

外部 TableView 类中的方法调用:

func tableViewCellClicked(position: Int, type: Any) {
        print("position\(position)")
    }

【问题讨论】:

    标签: ios swift uitableview


    【解决方案1】:

    你可以为你的 switch 函数传递一个闭包,在单元格内有一个

    var switchAction: () -> Void? 
    

    在单元格切换函数内部调用switchAction?(),现在在设置单元格时设置一个switchAction,例如

    func foo() { } 
    Cell.switchAction = foo
    

    现在当你点击开关动作foo 函数将触发你可以通过你想要的。

    【讨论】:

    • 感谢您的快速回复。我从不尝试关闭。所以我们可以声明关闭外部 tableview 单元格并在内部 tableview 中调用它吗?
    • 是的,你可以继续把它传递给任何东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多