我无法让我的 UITableView 在 swift 中重新加载数据
I can't get my UITableView to reload data in swift
我正在使用 UITableView 列出多个设置,并在单元格标题中显示该设置的状态。选择单元格后,它会转到我更改设置的另一个视图。我使用导航控件返回到 UITableView 但是我无法更新 table
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
}
}
数据正在保存在 plist 中,只是在我打开 UITableView 备份时没有重新加载。
当我返回另一个页面然后再次转发到 UITableView 时,table 确实会重新加载。
为什么 self.tableView.reloadData() 不起作用???任何帮助将不胜感激。
您可能正在将 保存到 plist,但 viewDidAppear
在刷新 tableView 之前没有加载它。
将 plist 的加载移动到 viewDidAppear
。
我正在使用 UITableView 列出多个设置,并在单元格标题中显示该设置的状态。选择单元格后,它会转到我更改设置的另一个视图。我使用导航控件返回到 UITableView 但是我无法更新 table
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
}
}
数据正在保存在 plist 中,只是在我打开 UITableView 备份时没有重新加载。 当我返回另一个页面然后再次转发到 UITableView 时,table 确实会重新加载。
为什么 self.tableView.reloadData() 不起作用???任何帮助将不胜感激。
您可能正在将 保存到 plist,但 viewDidAppear
在刷新 tableView 之前没有加载它。
将 plist 的加载移动到 viewDidAppear
。