reloadData()并在没有Interface Builder的情况下设置IBOutlets

时间:2014-11-21 14:26:00

标签: ios uitableview swift

我已使用this guide on the Speak Objectively Blog以编程方式在UITableView内创建UIViewController

但是我现在遇到.reloadData()没有刷新视图的问题。但是,如果我在UITableView内拖动或移动,数据会正确显示。

This answer suggests that I haven't set up the outlet。据我所知IBOutlets用于将Interface Builder中的元素连接到代码。如果我的理解是错误的,请纠正我。

如果我以编程方式创建UITableView,如何设置插座?

2 个答案:

答案 0 :(得分:4)

该指南创建了一个UITableViewController。它上面已经有一个UITableView实例,它就是你在屏幕上看到的实例。没有必要创建出口,所以答案实际上不是你问题的答案(但可能与某种程度有关)

我能想象的是你在别的地方发送消息。

正如您在Table View Controller Class Reference中看到的那样,您可以通过self.tableView(或只是swift中的tableView)获取表格视图

因此,请务必将邮件发送至self.tableView.reloadData()

如果它不起作用,发送部分代码将有助于我们更好地预测可能出现问题的地方;)

答案 1 :(得分:2)

如果self.tableView.reloadData()不能独立工作,请使用:

dispatch_async(dispatch_get_main_queue(), {self.tableView.reloadData()})

dispatch_async(dispatch_get_main_queue()) {self.tableView.reloadData()}