【发布时间】:2015-04-14 11:50:10
【问题描述】:
我正在使用 UITableView 列出一些设置,该设置的状态显示在单元格标题中。选择单元格后,它会转到另一个视图,我在其中更改设置。我使用导航控件返回 UITableView 但是我无法更新表格
class OptionTable: UITableViewController{
var table : [[String:AnyObject]] = []
var data = NSMutableDictionary()
func dataFilePath() -> String {
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let documentsDirectory = paths[0] as NSString
return documentsDirectory.stringByAppendingPathComponent("data.plist") as String
}
override func viewDidLoad() {
super.viewDidLoad()
data = NSMutableDictionary(contentsOfFile: self.dataFilePath())!
table = data["table"] as [[String:AnyObject]]
}
override func viewWillAppear(animated: Bool) {
self.tableView.reloadData()
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return table.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var rowTable : Dictionary = table[indexPath.row]
cell.textLabel?.text = rowTable["Title"] as? String
return cell
}
}
当我打开 UITableView 备份时,数据保存在 plist 中,只是没有重新加载。 当我返回另一个页面然后再次转发到 UITableView 时,表格确实会重新加载。
为什么 self.tableView.reloadData() 不起作用???任何帮助将不胜感激。
【问题讨论】:
-
我建议移动这些数据 = NSMutableDictionary(contentsOfFile: self.dataFilePath())! table = data["table"] as [[String:AnyObject]] 在重新加载 tableView 之前将两行放入 viewWillAppear。
-
我不知道是否相关,但我注意到你没有打电话给
super.viewWillAppear,无论哪种情况你都应该这样做。
标签: uitableview swift ios8 refresh reload