gpt4 book ai didi

ios - 将 UITableView 中的选定行保存到 NSUserDefaults

转载 作者:行者123 更新时间:2023-11-28 06:54:36 24 4
gpt4 key购买 nike

我正在尝试保存行的选定状态,以便在加载 TableView 时显示选定行的相应复选标记。我已经在下面的 viewDidAppear 中尝试过这种方法,但它不起作用。

override func viewDidAppear(animated: Bool) {

super.viewDidAppear(true)
let checkMarkToDisplay = NSUserDefaults.standardUserDefaults().valueForKey("lastSelection") as! Int
lastSelection = NSIndexPath(forRow: checkMarkToDisplay, inSection: 0)
self.tableView.cellForRowAtIndexPath(lastSelection)?.accessoryType = .Checkmark

}

var lastSelection: NSIndexPath!

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

if self.lastSelection != nil
{

self.tableView.cellForRowAtIndexPath(self.lastSelection)?.accessoryType = .None
}

if indexPath.row > 0
{
self.tableView.cellForRowAtIndexPath(indexPath)?.accessoryType = .Checkmark

self.lastSelection = indexPath

self.tableView.deselectRowAtIndexPath(indexPath, animated: true)
}

NSUserDefaults.standardUserDefaults().setObject(indexPath.row, forKey: "lastSelection")

最佳答案

请在 cellForRowAtIndexPath 中实现您的逻辑,并从 viewDidAppear 中删除您的复选标记代码。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let checkMarkToDisplay = NSUserDefaults.standardUserDefaults().valueForKey("lastSelection") as! Int

if checkMarkToDisplay == indexPath.row{
cell?.accessoryType = .Checkmark
}
else{
cell?.accessoryType = .None
}
}

关于ios - 将 UITableView 中的选定行保存到 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34035708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com