Mar*_*cus 2 uitableview ios swift swift2
在swift中我有两个视图控制器.一个是tableView并显示数组中的数据.在函数调用上,另一个视图控制器调用tableView并使用表视图的新数据传递参数.即使我更新了buckets从TableView获取数据的数组也没有更新.如何让程序重新加载其数据?
表格视图
import Foundation
import UIKit
class BucketTableViewController: UITableViewController {
var buckets = ["A", "B", "C"]
override func viewDidLoad() {
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return buckets.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell
cell.textLabel?.text = buckets[indexPath.row]
return cell
}
func updateBuckets(newBucket: NSArray) {
buckets = newBucket as! [String]
self.tableView?.reloadData()
}
}
Run Code Online (Sandbox Code Playgroud)
我可以验证从其他视图控制器调用updateBuckets.
其他视图控制器
var bigArray = ["M", "A", "R", "C"]
override func viewDidLoad() {
super.viewDidLoad()
let buckets = BucketTableViewController()
buckets.updateBuckets(bigArray)
}
Run Code Online (Sandbox Code Playgroud)
小智 5
尝试使用tableView?.beginUpdates()而tableView?.endUpdates()不是 - 我发现tableView?.reloadData()有时可能对数据源更新很挑剔.
否则,请确保您正在调用updateBuckets()正确的实例BucketTableViewController(); 看起来你在viewDidLoad()中实例化了一个新实例,而不是改变现有实例的内容(正如你可能会做的那样).
| 归档时间: |
|
| 查看次数: |
4657 次 |
| 最近记录: |