我有classVC
,一个包含UITableView和其他东西的UIViewcontroller。
我classTVC
是一个UITableViewController。
在classVC
实例化var TVC = classTVC()
然后我以编程方式将我的UITableView的委托和数据源设置为TVC
。
问题:
在控制器TVC
中,我声明了以下方法:
override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
let delete = UITableViewRowAction(style: .Destructive, title: "Delete") { (action, indexPath) in
// delete item at indexPath
}
let share = UITableViewRowAction(style: .Normal, title: "Disable") { (action, indexPath) in
// share item at indexPath
}
share.backgroundColor = UIColor.blueColor()
return [delete, share]
}
如何在执行share
或delete
操作后重新加载UITableView?它发生在UITableViewController中,因此我无法调用.reloadData()
我已经尝试检索parentViewController等,但它看起来很脏
答案 0 :(得分:1)
只需捕获块中的tableView并调用reloadData
override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
let delete = UITableViewRowAction(style: .Destructive, title: "Delete") { (action, indexPath) in
// delete item at indexPath
...
tableView.reloadData()
}
let share = UITableViewRowAction(style: .Normal, title: "Disable") { (action, indexPath) in
// share item at indexPath
...
tableView.reloadData()
}