ios - 从一个 View Controller 移动到另一个 View Controller 时如何保存表格 View 数据?

标签 ios swift iphone uitableview

从一个 View Controller 移动到另一个 View Controller 时如何在表格 View 中保存数据

当我退出应用程序或从 View Controller 移动到 View Controller 时,我试图让单元格保留下来我尝试过在堆栈上使用多种解决方案,并且我尝试过 viewDidAppear 来保留单元格数据在 CartVC 但仍然没有运气

旁注:我的 CartVC 中的单元格是从另一个 View Controller 填充的,当在 View Controller 中选择一个项目时,它会传递到 CartVC 中以填充单元格,每次我从一个 VC 移动到另一个 VC 时(或关闭)应用程序)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
    }      
}

最佳答案

如果您想保存数据,可以使用用户默认值

保存到本地

let Defaults = UserDefaults.standard
Defaults.set(Yourvalue, forKey: "yourkey")
Defaults.synchronize()

使用

访问它
let yourvalueuset  =  UserDefaults.standard.string(forKey: "yourkey")

关于ios - 从一个 View Controller 移动到另一个 View Controller 时如何保存表格 View 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59032510/

相关文章:

ios - 使用 RubyMotion 选择 iOS 模拟器设备类型

ios - 线程1:EXC_BAD_ACCESS(代码= 2,地址= 0x7fff5450df68)

ios - AWS Cognito 未使用 Digits 创建经过身份验证的用户

ios - Swift:didSelectItemAtIndexpath 函数不适用于 json

iphone - 将 NSMutableArray 转换为 C 结构体数组 - iPhone - OpenGL ES

iphone - iOS:来自 youtube channel 的随机视频?

javascript - React-Native 不使用导航器传递 props?

swift - 使用未声明的类型 'CPTMutableAxisLabelSet'

iphone - 使用内联标签解析 XHTML

iphone - iPhone/Android 专用 CSS