[英]Refresh TableView Cell at different intervals in Swift to get data from URL
[英]How to refresh data in a tableview from a different tableview
我正在開發一款游戲,您可以在這里“雇用”開發人員為您工作。 基本上,我有一個表視圖可以容納您可以雇用的所有可能的雇員,而另一個表視圖可以容納您雇用的雇員。
問題是我有第三個表格視圖,您可以在其中“學習”不同的編碼語言,從而改變每個開發人員可以賺到的錢。
我要完成的工作是,當玩家按下按鈕以學習新的編碼語言,為已學習的最新編碼語言更新變量時,進而影響開發人員的收入。
我已經完成所有工作,但是為了更新我擁有的所有標簽,當在另一個表視圖中按下“學習”按鈕時,我需要在Employees表視圖中重新加載數據。 有什么建議么??
使用委托 。
假設您有兩個類, EmployeeTable
和LearnTable
。 通過協議使Employee表成為Learn表的委托。
在LearnTable
類中,在頂部添加委托協議:
protocol LearnTableDelegate { func didUpdateTable() }
EmployeeTable
類必須符合協議並實現其指定的功能。 通過擴展該類來遵循協議是一個好習慣:
extension EmployeeTable: LearnTableDelegate { func didUpdateTable() { // do whatever is necessary to update the table } }
LearnTable
類需要一個位置來存儲對其委托的引用,這是可選的,因為可能未設置引用:
class LearnTable { var delegate: LearnTableDelegate? }
(在這里,我假設您正在EmployeeTable中進行此操作。)在創建LearnTable
實例LearnTable
,然后選擇插入,將對EmployeeTable的引用作為委托添加。
let learnTable = LearnTable() learnTable.delegate = self
您有任何代碼可以向我們展示嗎?
嘗試使用NSNotificationCenter將通知發送到另一個視圖控制器。 例如,
在您要調用的類中,從中重新加載
NSNotificationCenter.defaultCenter().postNotificationName("reloadTableView" object: self)
在您要刷新的表視圖的類中,在確實加載的視圖中添加它
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "refresh",
name: "reloadTableView",
object: nil)
然后在同一個類中有一個稱為“刷新”的函數,
func refresh() {
self.tableView.reloadData()
}
我建議您繼續使用學習按鈕觸發IBAction
,然后使用tableView.reloadData()
重新加載另一個UITableView
。 如果您需要在不同的ViewController中觸發它,我將繼續使用NSNotificationCenter
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.