使用核心数据将单元格添加到收藏夹tableview

时间:2016-05-29 19:02:23

标签: swift uitableview favorites

我有一个iOS应用程序,我想让人们在tableview单元格上滑动,将该单元格添加到收藏夹页面tableview。

必须使用核心数据,以便在app退出后保存收藏夹。

任何帮助将不胜感激!

这是我到目前为止进行细胞扫描操作的原因:

override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {

    let favorite = UITableViewRowAction(style: .Normal, title: "Favorite") { (action, indexPath) in
        // share item at indexPath
        self.editing = false
        print("Favorited \(indexPath.row)")


    }

    favorite.backgroundColor = UIColor.greenColor()

    return [favorite]
}

这是我的收藏页面的代码。

var favorites : [String] = []

override func viewDidLoad() {
    super.viewDidLoad()
    favorites = vars.favs
    self.tableView.reloadData()
}



override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return favorites.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
    let object = favorites[indexPath.row]
    cell.textLabel!.text = object 
    return cell
}

这是如何添加收藏夹的图片: Current Progress

1 个答案:

答案 0 :(得分:2)

如果您需要在应用中保留所有收藏列表作为字符串,则可以使用NSUserDefaults代替核心数据。

保存收藏夹数组:

let favorite = UITableViewRowAction(style: .Normal, title: "Favorite") { (action, indexPath) in
    var favorites : [String] = []
    let defaults = NSUserDefaults.standardUserDefaults()
    if let favoritesDefaults : AnyObject? = defaults.objectForKey("favorites") {
        favorites = favoritesDefaults! as [String]
    }

    favorites.append(tableView.cellForRowAtIndexPath(indexPath).textLabel!.text)
    defaults.setObject(favorites, forKey: "favorites")
    defaults.synchronize()
}

要在收藏页面中阅读收藏夹数组:

var favorites : [String] = []

override func viewDidLoad() {
    super.viewDidLoad()

    let defaults = NSUserDefaults.standardUserDefaults()
    if let favoritesDefaults : AnyObject? = defaults.objectForKey("favorites") {
        favorites = favoritesDefaults! as [String]
    }

    self.tableView.reloadData()
}