Eri*_*son 13 uitableview uinavigationcontroller ios swift
我有
class StationViewController :
UITableViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var stationTableView: UITableView!
Run Code Online (Sandbox Code Playgroud)
更新数据源中的数据并执行操作时
stationTableView.reloadData()
Run Code Online (Sandbox Code Playgroud)
这不会立即显示在屏幕上.如果我滚动,倾斜或做任何其他强制重新绘制屏幕的内容,则可以看到更新的单元格.我可以通过调用确认UITableView确实进行了更新
println("\(stationTableView.visibleCells())")
Run Code Online (Sandbox Code Playgroud)
打印预期的细胞.
其余的设置是UINavigationController我StationViewController的关系.它的IBOutlet stationViewController连接到UITableViewstoryboard文件中.
我似乎需要对屏幕进行"重新绘制"以使我的更新立即可见.我怎么做?
Eri*_*son 33
感谢Artem,我发现我需要在主线程上调用reloadData().这就是我解决这个问题的方法:
func refreshUI() {
dispatch_async(dispatch_get_main_queue(),{
self.stationTableView.reloadData()
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17141 次 |
| 最近记录: |