【发布时间】:2015-06-01 20:59:13
【问题描述】:
当我在 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();
【问题讨论】:
-
因为
var a = TableViewController()创建了一个新的、完全不相关的表格视图控制器实例......你认为它做了什么? -
检查这个问题/答案:stackoverflow.com/questions/25921623/…
-
本以为会带上当前的TableViewController()实例,我是新手,还在学习SWIFT编程,谢谢解决。
标签: swift