【问题标题】:how to get textfields texts in tableview cells that this tableview is in another table view controller in swift 4?如何在 swift 4 中的另一个表视图控制器中获取该表视图单元格中的文本字段文本?
【发布时间】:2017-12-23 11:48:47
【问题描述】:

我有一个表格视图控制器,它在其中一个单元格中有一个表格视图,在内部表格视图中我有一个带有文本字段的示例单元格 我希望当用户在键盘被关闭时开始编辑文本字段时,数组中的所有文本字段文本存储都是解除代码

@objc func dismissKeyboard() {

    view.endEditing(true)

    let index = IndexPath(row: 0, section: 6)
    let cell = tableView.cellForRow(at: index)

    if (cell as? editCertificatesCell) != nil {
    for i in 0..<certificates.count {

        let index = IndexPath(row: i, section: 0)
        let cell = tableView.cellForRow(at: index)

        if let cell = cell as? eCCell {

            let b = cell.ceText.text!
            print(b)

            // here is your field
        }
    }
    }

这是其中包含 tableview 的 table view 单元格类

import UIKit

class editCertificatesCell: UITableViewCell {

@IBOutlet weak var addCertificate: UIButton!

@IBOutlet weak var certificatesListTableView: UITableView!

override func awakeFromNib() {
    super.awakeFromNib()

    // Initialization code

}

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state
}

@IBAction func ceD(_ sender: UIButton) {
  }

 }


  extension editCertificatesCell {

func setCollectionViewDataSourceDelegate
    <T: UITableViewDelegate & UITableViewDataSource>
    (_ dataSourceDelegate:T , forRow row : Int )

{

    certificatesListTableView.delegate = dataSourceDelegate
    certificatesListTableView.dataSource = dataSourceDelegate
    certificatesListTableView.reloadData()
}




 }

这里是主表视图 indexPath 代码,其中包含表视图

let eCCells = tableView.dequeueReusableCell(withIdentifier: "eCCell", for: indexPath) as! eCCell

        print(certificates[indexPath.row])
        eCCells.ceText.text = certificates[indexPath.row]
        eCCells.ceDelete.tag = indexPath.row
        eCCells.ceDelete.addTarget(self, action: #selector(EditProfileTableViewController.deleteCer), for: UIControlEvents.touchUpInside)

这是我在控制台中收到的错误但没有崩溃

invalid capability (0x14) "Unable to insert COPY_SEND

只是我只想在用户编辑文本字段时创建一个文本字段文本数组,然后重新加载内部表格视图并显示它们

【问题讨论】:

    标签: ios uitableview tableview cell swift4


    【解决方案1】:

    1-在tableViewController中监听键盘隐藏/显示

    2- 隐藏键盘时访问可见单元格

    3- 循环每个可见单元格并访问与其关联的内部表格视图

    4- 访问内部表格视图中的可见单元格

    每个内部单元格中都有 5-acees textfeild 属性,并使用当前外部和内部单元格索引存储它们的文本,以便在重新加载后反映在您的模型中

    【讨论】:

    • 我知道但是在代码中我有问题你能帮我在这里写一些代码吗?
    【解决方案2】:

    这就是答案 我应该用这个代替dismissKeyboard()函数

     @objc func dismissKeyboard() {
    
        view.endEditing(true)
    
        let index = IndexPath(row: 0, section: 6)
        let cell = tableView.cellForRow(at: index) as! editCertificatesCell
    
        var certificatesSample = [String]()
        certificatesSample.removeAll()
        for i in 0..<certificates.count {
    
            let index1 = IndexPath(row: i, section: 0)
            cell.certificatesListTableView.cellForRow(at: index1)
            let cell = cell.certificatesListTableView.cellForRow(at: index1)
    
            if let cell = cell as? eCCell {
    
                let b = cell.ceText.text!
                print(b)
                certificatesSample.append(b)
            }
        }
    
        certificates.removeAll()
        certificates = certificatesSample
        certificatesSample.removeAll()
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多