从一个View Controller移到另一个View Controller时如何在tableview中保存数据
当我退出应用程序或从视图控制器移到视图控制器时,我试图让单元格保留下来。我尝试过在堆栈上使用多个解决方案,并且尝试过viewDidAppear来保持单元格数据保留下来在CartVC中,但仍然没有运气
侧面注:我的CartVC中的单元格是从另一个View Controller填充的,每当我从一个VC移到另一个VC(或关闭)时,当在视图控制器中选择一个项目时,它将传递到CartVC中以填充这些单元格该应用程序)CartVC中的数据消失了,如何将数据保存在CartVC中
class CartViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{
var selectedProduct: Items!
var cart: [Cart] = []
var groupedCartItems: [String: [Cart]] = [:]
var brands: [String] = []
@IBOutlet weak var cartTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
groupedCartItems = Dictionary(grouping: cart, by: {$0.cart.dispensaryName})
dispensarySectionTitle = groupedCartItems.map{$0.key}.sorted()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
masterCartTableView.reloadData()
}
func numberOfSections(in tableView: UITableView) -> Int {
return brands.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let brand = brands[section]
return groupedCartItems[brand]!.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cartCell = tableView.dequeueReusableCell(withIdentifier: "CartCell") as! CartCell
let brand = brands[indexPath.section]
let itemsToDisplay = groupedCartItems[brands]![indexPath.row]
cartCell.configure(withCartItems: itemsToDisplay.cart)
return cartCell
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let cartHeader = tableView.dequeueReusableCell(withIdentifier: "CartHeader") as! CartHeader
let headerTitle = brands[section]
cartHeader.brandName.text = "Store: \(headerTitle)"
return cartHeader
}
}
答案 0 :(得分:0)
如果您希望保存数据,则可以使用用户默认设置
将其保存在本地
let Defaults = UserDefaults.standard
Defaults.set(Yourvalue, forKey: "yourkey")
Defaults.synchronize()
通过
访问let yourvalueuset = UserDefaults.standard.string(forKey: "yourkey")
答案 1 :(得分:0)
将数组保存如下:
let yourArray : [Any] = [] //Change your array type according to your requirement
UserDefaults.standard.setValue(yourArray, forKey: "your_key")
并获得如下数组:
UserDefaults.standard.value(forKey: "your_key") //Get your array type according to you've saved before