如何在 swift 4 中的另一个表视图控制器中获取该表视图单元格中的文本字段文本?
Posted
技术标签:
【中文标题】如何在 swift 4 中的另一个表视图控制器中获取该表视图单元格中的文本字段文本?【英文标题】:how to get textfields texts in tableview cells that this tableview is in another table view controller in 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
只是我只想在用户编辑文本字段时创建一个文本字段文本数组,然后重新加载内部表格视图并显示它们
【问题讨论】:
【参考方案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()
【讨论】:
以上是关于如何在 swift 4 中的另一个表视图控制器中获取该表视图单元格中的文本字段文本?的主要内容,如果未能解决你的问题,请参考以下文章