我有以下功能:
func createTableViewCard() {
let myTableView = UITableView(frame: CGRect(x: 0, y: 0, width: screenSize.width, height: screenSize.height))
let newView = UIView(frame: CGRect(x: 10, y: 10, width: screenSize.width-20, height: screenSize.height-20))
newView.addSubview(myTableView)
view.addSubview(newView)
}
现在,在viewDidLoad()
内,我想" reloadData"对于我刚刚添加到主视图的这个tableView。
我该怎么做?
答案 0 :(得分:2)
使myTableView
成为类的属性并在主线程上重新加载:
func refreshUI() {
dispatch_async(dispatch_get_main_queue(),{
self.myTableView.reloadData()
});
}
答案 1 :(得分:0)
尝试类似这样的事情。当你想在需要重新加载时将tableView添加到UIView.Call refreshUI函数中时调用createTableViewCard函数
class YOUR_CLASS {
let myTableView = UITableView()
ovverride func viewDidLoad(){
self.createTableViewCard() // call this method when you want add tableView
}
func createTableViewCard() {
self.myTableView = UITableView(frame: CGRect(x: 0, y: 0, width: screenSize.width, height: screenSize.height))
let newView = UIView(frame: CGRect(x: 10, y: 10, width: screenSize.width-20, height: screenSize.height-20))
newView.addSubview(myTableView)
view.addSubview(newView)
}
func refreshUI() {
dispatch_async(dispatch_get_main_queue(),{
self.myTableView.reloadData()
});
}
}
答案 2 :(得分:0)
首先全局声明您的表视图实例
var myTableView :UITableView!
直到并且除非您没有分配委托和数据源重新加载功能不起作用
func createTableViewCard() {
myTableView = UITableView(frame: CGRect(x: 0, y: 0, width: screenSize.width, height: screenSize.height))
let newView = UIView(frame: CGRect(x: 10, y: 10, width: screenSize.width-20, height: screenSize.height-20))
newView.addSubview(myTableView)
myTableView.delegate = self
myTableView.datasource = self
view.addSubview(newView)
}
以后您可以轻松重新加载数据
myTableView.reloadData()