ios - 如何通过表格单元格中的单击按钮从表格单元格中获取标签值?

时间:2018-03-07 20:14:50

标签: ios swift uitableview

我有一个UITableView,在每个单元格中都有一些标签和一个按钮。我想点击按钮时获得所有标签值。这该怎么做?谢谢。

3 个答案:

答案 0 :(得分:0)

为单元格自定义类中的按钮创建IBAction方法,并在其中打印

   print("label text : \(self.lbl.text)")

或者使用委托将该值发送到包含tableView

的VC

答案 1 :(得分:0)

首先。您应该有一个模型对象,您正在使用它来加载标签的值。使用

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {}

获取索引然后尝试使用索引从模型中获取值 例如,您有一个数组myArray,然后您可以使用myArray[indexPath.row]访问该值以获取该值。然后保存,传递并在任何您想要的地方使用它。然后在传递indexPath的自定义表单元类中实现委托方法。然后使用tableView.reloadRows(at: [IndexPath(item:0,section:0)], with: .fade)

刷新单元格

答案 2 :(得分:0)

您可以通过关闭或委派

来完成

1:关闭

在tableViewCell类中创建一个像这样的变量

customObject 是您传递tableviewCell以加载数据的对象

var cellData: customObject? {

    didSet {
        // do your loding labels in here
    }
}

var clickHandler: ((customObject) -> Void)!

并在你的动作按钮内添加此

 @IBAction func replyAction(_ sender: Any) {
    if let customObject = customObject {
        clickHandler(customObject)
    }
}

现在去哪里取桌子

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
   let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! YourCustomCell

   // add this
   cell.clickHandler = { customObject in 

   print("myCell.customObject = \(customObject)")

   }
}

这将做魔术

<强> 2。团

像这样创建一个委托方法

protocol CustomCellDelegate {
    func getCustomObject(in cell: CustomCell, withCustomObject object: CustomObject)
}

现在在您的单元格类中添加委托变量

 var delegate: CustomCellDelegate?

并在你的动作按钮内添加此

@IBAction func replyAction(_ sender: Any) {
    if let customObject = customObject {
        delegate.getCustomObject(in: self, withCustomObject: customObject)
    }
}

现在最后一部分去上课,你实现了表格视图,这就是它显示的地方

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
   let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! YourCustomCell

   // add this
   cell.delegate = self
}

在课堂内你应该添加委托方法

extension YourClass: CustomCellDelegate {

    getCustomObject(in cell: CustomCell, withCustomObject object: CustomObject) {
         print("current cell data = \(CustomObject)"
    }

}

这也可以完成这项工作

跳这将有助于