从控制器重新加载 UITableView
Posted
技术标签:
【中文标题】从控制器重新加载 UITableView【英文标题】:Reload UITableView from Controller 【发布时间】:2015-11-03 09:55:12 【问题描述】:我有classVC
,一个包含 UITableView 和其他东西的 UIViewcontroller。
我有 classTVC
是一个 UITableViewController。
在classVC
中实例化var TVC = classTVC()
然后我以编程方式将 UITableView 的 delegate 和 datasource 设置为 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 等,但它看起来很脏
【问题讨论】:
【参考方案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()
【讨论】:
我怎么会错过这个...我去拿个保险箱,谢谢以上是关于从控制器重新加载 UITableView的主要内容,如果未能解决你的问题,请参考以下文章
如何从其他类重新加载整个 tableview 控制器 [关闭]
每次将视图控制器压入堆栈时,如何从 appDelegate 重新加载视图控制器?