Swift 3. 尝试从 viewController 更新原型单元 class 中声明的一些 IBOutlet

Swift 3. Trying to update from viewController some IBOutlets declared in prototype cell class

我在 tableView 中有单元格,其中有 2 个标签显示文本。 单元格在 UITableViewCell 类型的 detailCell class 中进行管理,它为两个标签引用 IBOutlets。这使我能够管理我的原型单元并显示核心数据条目。

我在每个标签的顶部添加了 UITextField(边框样式不可见),我想在用户点击文本字段并开始编辑时隐藏标签。

问题是我不知道如何在不引用 viewController 中的标签的情况下管理我的 viewController 中的标签(在原型 class 中引用)。当然这会引发错误:"Outlets cannot be connected to repeating content".

另一种方法是根据我在 viewController 中使用的 var isEditing: Bool,通过从单元格 class 管理它来添加 hide/display 标签,但是我无法在单元格 class.

中使用它

有什么想法吗?

要实现这一点,您必须执行以下操作:

-> 首先,您必须将所有文本字段委托给自己

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {


let aCell : myCustomCell = tableView.dequeueReusableCell(withIdentifier: "aCell") as! myCustomCell

        aCell.txtView1.delegate = self
    return aCell    
    }

-> 其次,当用户单击文本字段时,您必须获得特定的单元格

     func textFieldDidBeginEditing(_ textField: UITextField) {

          //Get parent cell by traveling to the superview as your cell (Depends on your view hierarchy in your cell)
            let aCell : myCustomCell = textField.superview?.superview as! myCustomCell

//Hide below label
aCell.lblData.hidden = true

        }

--> 第三,当文本字段结束编辑被调用时,你必须隐藏文本字段并再次显示标签

func textFieldDidEndEditing(_ textField: UITextField) {
        let aCell : myCustomCell = textField.superview?.superview as! myCustomCell

    //Hide below label
    aCell.lblData.text = textField.text
    aCell.lblData.hidden = false
    }