【发布时间】:2017-07-15 18:00:24
【问题描述】:
我在 UIViewController 中有一个 UITableView(让我们调用该视图控制器 B),我一次填充一个对象。对象在之前的 UIViewController(视图控制器 A)中创建,并在视图控制器 A 的 prepare(for segue:_) 函数中添加到表的数据源(也是视图控制器 B)中。这会将一个对象添加到表格,此时用户可以点击“添加到表格”单元格,将他们带回控制器 A,然后重复该过程。问题是每次我返回视图控制器 B 时,表视图只有最近添加的对象。我相信这是因为每个 segue 都在创建它要移动到的 ViewController 的新实例。如何防止这种情况发生,或者找到一个更好的位置来存储不会每次都被重新实例化和覆盖为空列表的 tableview 数据源?
查看控制器 A
class ViewControllerA : UIViewController {
var object = MyObject(...)
...
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let viewB = segue.destination as! ViewControllerB
viewB.dataSource.append(object) //
}
}
视图控制器 B
class ViewControllerB: UIViewController, UITableViewDataSource, UITableViewDelegate {
var dataSource = [MyObject]()
//DataSource functions fill table with dataSource array objects
...
}
【问题讨论】:
标签: swift uitableview uiviewcontroller