我有一個UITableView裏面的UIViewController(讓我們調用視圖控制器B),我一次填充對象。這些對象是在以前的UIViewController(視圖控制器A)中創建的,並且在視圖控制器A的prepare(for segue:_)函數中添加到表的數據源(也是視圖控制器B)中。這將一個對象添加到該表,在這一點上用戶可以點擊一個「添加到表格」單元格,將它們帶回控制器A,並重復該過程。問題是每次我回到視圖控制器B時,表視圖只有最近添加的對象。我相信這是因爲每個segue都在創建它正在移動的ViewController的新實例。我怎樣才能防止這種情況,或找到一個更好的地方來存儲tableview數據源,每次都不會被重新實例化並被覆蓋爲空列表?如何防止UIViewController在segues期間重新實例化?
視圖控制器等
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
...
}
嗯,所以確實沒有有效的方法來保持ViewController本身不會重新啓動我猜。感謝您鏈接到unwind實現,我還不知道如何使用這些。 –