2014-11-21 16 views
1

我已經在我的UIViewController內部創建了一個UITableView,使用this guide on the Speak Objectively Blog以編程方式。reloadData()和設置IBOutlets無需接口生成器

但是,我現在有問題,.reloadData()不刷新視圖。但是,如果我拖動或移動UITableView內的數據顯示正確。

This answer suggests that I haven't set up the outlet。根據我的理解,IBOutlets用於將Interface Builder中的元素連接到代碼。如果我的理解錯誤,請糾正我。

如果我以編程方式創建UITableView,我該如何設置插座?

+1

凡.reloadData()被調用?你有沒有參考tableview,請張貼代碼片段,你調用reloadData – Vig 2014-11-21 14:34:22

+0

IBOutlet代表界面生成器插座,所以沒有,如果你是以編程方式做它,你不需要它們。 – AMAN77 2014-11-21 15:32:57

回答

2

如果self.tableView.reloadData()不就其本身而言,使用工作:

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

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

這工作就像一個魅力 - 非常感謝! – Jimmery 2014-11-21 16:08:51

4

該指南創建了一個UITableViewController。它已經有一個UITableView的實例,它就是你在屏幕上看到的一個實例。沒有必要創建網點,所以答案實際上不是你的問題的答案(但可能是某種相關的)

我可以想象的是,你正在其他地方發送消息。

正如你可以在Table View Controller Class Reference看到,你可以通過self.tableView(或只是在的tableView SWIFT)

讓你的表視圖因此,請確保您要發送的消息self.tableView.reloadData()

如果沒有工作中,發送您的代碼的一部分,將有助於我們更好地看到比想象的地方可能是問題;)