我有一个自定义可扩展的UITableViewCell。展开后,它会显示几个UITextField。我希望在UITextField的值发生更改后更新UITableView中的表数据。检测变更事件不是问题。
是否有一种从UITableViewCell访问自定义UITableView控制器的简单方法?我应该在cellForRowAtIndexPath创建单元格时创建引用吗?
谢谢!
答案 0 :(得分:1)
我有同样的需要。我想用
从自定义单元格重新加载tableviewself.tableView.reloadData()
其中self引用UITableViewController。
我找到的最简单的方法是使用委托模式。
class MyTableVC:MyProtocol{
...
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
...
(cell as! MyCell).delegate = self
...
}
func reloadData() {
self.tableView.reloadData()
}
....
}
我的自定义单元格及其协议声明
protocol MyProtocol : NSObjectProtocol {
func reloadData()
}
class MyCell: UITableViewCell{
...
weak var delegate: MyProtocol?
// When the job is done call reloadData()
self.delegate?.reloadData()
}
答案 1 :(得分:0)
在上面的答案中,在第三行中,您将UIView与UIViewController对象进行比较。
if (view!.isKindOfClass(CustomTableViewController)) {
试试这个,
if (view!.isKindOfClass(CustomTableViewController.view)) {