【发布时间】:2017-01-05 17:41:54
【问题描述】:
我有一个包含表格视图的视图控制器。表格视图中的单元格具有删除单元格包含的数据的按钮。当我按下删除按钮时,单元格信息会从我的数据库中删除,但表格视图不会更新,直到我来回切换。
我不确定如何访问 TableView 并强制它从我的表格单元格内的方法中重新绘制自己。
class EditTaskTableViewCell: UITableViewCell {
//......//
@IBAction func deleteButtonPressed(_ sender: Any) {
let userDefaults = Foundation.UserDefaults.standard
if let userTasks = userDefaults.array(forKey: "userTasks"){
let newArray = removeTask(item: taskNameLabel.text!, from: userTasks as! [String])
userDefaults.set(newArray, forKey: "userTasks")
userDefaults.synchronize()
}
//update table view
}
}
class EditTaskTable_VC: UIViewController, UITableViewDelegate, UITableViewDataSource {
//......//
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = Bundle
.main
.loadNibNamed("EditTaskTableViewCell", owner: self, options: nil)?
.first as! EditTaskTableViewCell
cell.taskName.text = cellData[indexPath.row].title
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return cellData.count
}
【问题讨论】:
-
与您的问题无关,但不要使用 UserDefaults 来存储您的用户数据。
-
你在哪里设置单元格的信息,在
EditTaskTableViewCell内的func()或ViewController中? -
我在
TaskTableViewController中构建单元格的数据(如标签)。 @fantini
标签: ios uitableview swift3 uikit