所以我在我的视图控制器中从2个Dicitionaries中填充了TableViewCell。
var categories : [Int : [String : Any]]!
var assignments : [Int: [String : Any]]!
我的单元格中有一个UiTextField,用户应该可以编辑。然后,我希望能够根据用户更改的内容更改该字典中某些键的值,并使用这些更改重新显示该表。我的主要问题是我不知道如何从我的单元格中访问theese变量。我的视图控制器中有一个方法,它接受文本字段所在的行以及textField的值,并更新字典。我需要的是能够实例化单元格所在的视图控制器,但我需要已经将值加载到类别和赋值字典中的原始实例。如果您对如何完成此任务有任何其他想法,请发布。
答案 0 :(得分:0)
您可以使用委托将单元格数据共享到VC:
protocol YourCellDelegate() {
func pickedString(str: String)
}
class YourCell: UITableViewCell {
var delegate: YourCellDelegate! = nil
@IBOutlet weak var textField: UITextField!
.....//some set-method, where you can handle a text
func textHandle() {
guard let del = delegate else { return }
del.pickedString(textField.text)
}
.....
}
在VC中使用:在创建单元格时,将其委托设置为self:
...
cell.delegate = self
...
确保VC支持您的代理协议:
class YourVC: UIViewController, YourCellDelegate {
}
现在,你必须实现协议方法:
class YourVC: UIViewController, YourCellDelegate {
....
func pickedString(str: String) {
}
....
}
所有时候,当你在单元格中使用textHandle()时,selectedString(str:String)会在你的VC中使用textField中的字符串激活。
享受!