![](/img/trans.png)
[英]How can I reload all of data in tableview when I click cancel on search bar?(IOS/Swift)
[英]iOS swift tableview how can I reload the data when I touch button
我創建了一個tableview,並且有一個像這樣的對象:
public class data: NSObject {
var name :String = ""
var number :Double = 0
var price : Double = 0
var sum:Double = 0
}
我創建一個數組:
var data1 = [data]()
我有一個表格單元格:
@IBOutlet var a0: UITextField!
@IBOutlet var a1: UITextField!
@IBOutlet var a2: UITextField!
@IBOutlet var a3: UITextField!
var data1 : data? {
didSet {
var a00 = data1?.name
var a11 = data1?.number
var a22 = data1?.price
var a33 = a11! * a22!
a0.text = a00
a1.text = String(a11!)
a2.text = String(a22!)
a3.text = String(a33)
}
}
因此,當我在表格視圖中觸摸按鈕(如果有按鈕)時,如何重新加載數據? 它是不同的文件,一個是Viewcontroller.swift,另一個是tableviewCell.swift,我該怎么辦?
創建這樣的協議:
protocol ParentControllerDelegate{
func requestReloadTable()
}
在您的TableViewCell類中:
class ProjectCell: UITableViewCell{
var parentDelegate: ParentControllerDelegate?
// And whatever other things you require in the UITableViewCellClass
}
現在,當您使TableViewCell時,將Controller類分配為委托:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "TableCellID") as! ProjectCell
cell.parentDelegate = self
}
此時,您可以從UITableViewCell類在Controller對象中調用協議方法。 在UITableViewCell類中為按鈕創建IBAction並調用:
delegate?.requestReloadTable()
在上面的代碼中,requestReloadTable是您的控制器類中的方法,在確認控制器符合我們之前制定的協議時,必須重寫該方法:
extension HomeController: ParentControllerDelegate{
func requestReloadTable() {
self.tableView.reloadData()
}
}
為按鈕創建IBOutlet,您想更新表格。 並執行以下代碼:
self.tableView.reloadData()
例如:
@IBAction func upDateTable(_ sender: Any) {
self.tableView.reloadData()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.