我有一个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
}
答案 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()
}