当我在UITableViewController中运行tableView.reloadData()
时,它可以工作,但是当我调用一个函数来从另一个控制器更新这个tableview时,它不起作用。
//这种方式正常工作
func reloadTableView(){
let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true ).first as String
let db = Database("\(path)/db.sqlite");
conversasArray.removeAll(keepCapacity: true);
let stmt = db.prepare("SELECT ZNOME,ZUlTIMAMSG,ZIDMENSAGEM,ZIMAGE FROM ZUSUARIO,ZCHAT WHERE ZTELEFONE = ZTO")
var objetoConversa : AnyObject = [];
for row in stmt {
objetoConversa = ["ZNOME":"\(row[0]!)", "ZUlTIMAMSG":"\(row[1]!)", "ZIDMENSAGEM":"\(row[2]!)", "ZIMAGE":"\(row[3]!)"];
//Adiciona o objeto dentro do array de objetos.
conversasArray.append(objetoConversa)
}
tableView.reloadData();
}
//但是当我这样做时,另一个文件tableView.reloadData()不起作用。
var a = TableViewController();
a.reloadTableView();
答案 0 :(得分:0)
在重新加载tableview时使用tableview的save实例。
还在主线程中重新加载tableview。
扩展名UITableView {
/// Reload TableView in main thread
func reloadInMainThread() {
DispatchQueue.main.async {
self.reloadData()
}
}
}