私が持っています
class StationViewController :
UITableViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var stationTableView: UITableView!
データソースのデータを更新するとき
stationTableView.reloadData()
これは画面にすぐには表示されません。スクロール、傾斜、または画面の再描画を強制するその他の操作を行うと、更新されたセルが表示されます。 UITableViewが更新を行ったことを確認するには、
println("\(stationTableView.visibleCells())")
予想されるセルを出力します。
残りのセットアップはUINavigationController
であり、これには私のStationViewController
が関係としてあります。 stationViewController
のIBOutletは、ストーリーボードファイルのUITableView
に接続されています。
アップデートをすぐに表示するには、画面の「再描画」が必要なようです。それ、どうやったら出来るの?
Artemのおかげで、メインスレッドでreloadData()を呼び出す必要があることがわかりました。これが私がそれを解決した方法です:
func refreshUI() {
dispatch_async(dispatch_get_main_queue(),{
self.stationTableView.reloadData()
});
}