我有一个ViewController,其中有一个TableView。在我使用Alamofire请求获取数据后,我重新加载TableView的数据,因为tableView为零,所以它崩溃了。
class TeamsVC: UIViewController, UITableViewDelegate, UITableViewDataSource{
@IBOutlet var tableView: UITableView!
var terminArr = [Termin]()
override func viewDidLoad() {
TerminResource.getTerminsByUsername(username: "SonnyBlackzz"){
response in
self.terminArr = response
self.tableView.reloadData()
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.terminArr.count;
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
print(self.terminArr[indexPath.row].name)
cell.textLabel?.text = self.terminArr[indexPath.row].name
return cell
}
答案 0 :(得分:3)
您可以选择三个选项。
1 - 确保已将插座连接到桌面视图。
2 - 您可以将您的继承更改为
class TeamsVC: UITableViewController, UITableViewDelegate, UITableViewDataSource{
.
.
.
}
您可以轻松访问
self.tableView.reloadData()
3-您可能必须以编程方式初始化
首先
var tableView: UITableView = UITableView()
然后在viewdidload中
tableView = UITableView(frame: UIScreen.mainScreen().bounds, style: UITableViewStyle.Plain)
tableView.delegate = self
tableView.dataSource = self