2016-05-29 8 views
0

iOSアプリケーションを持っている人は、テーブルビューのセルをスワイプしてそのセルをお気に入りページのテーブルビューに追加したいと思っています。お気に入りにセルを追加するコアデータを持つテーブルビュー

アプリの終了後にお気に入りが保存されるように、コアデータを使用する必要があります。

助けていただけたら幸いです!

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

+0

は、あなたがこれまでにやっている私たちを示していただけますか? – penatheboss

+0

私はこれまでのところセルのスワイプアクション設定しか持っていません。 – Jacksmackod

+1

テーブルビューを使用している場合は、テーブルビューの一部の機能が必要です。私たちにそれらを表示 – penatheboss

答えて

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() 
} 
+0

これも画像を転送しますか? – Jacksmackod

+0

@ Jacksmackodピクチャへのパスを保存することができます。このパスはディスク上の他の場所に保存されます。しかし、コアデータであっても、内部に画像を直接保存することはお勧めしません。 http://stackoverflow.com/a/30672362/1420793を参照してください。 私は最初に気にしていましたが、お気に入りのセルの内容を参照するIDなどを保存する必要があるだけです。あなたのセルには画像のみ、またはより複雑なデータ構造しかありませんか?唯一の画像の場合は、上記の方法はそのまま動作します。しかし、より多くのデータを保存したい場合は、確かにコアデータがより良い選択になります。 –

+0

私はセルにテキスト画像とそのアクション(表示を変える)を保存します。 – Jacksmackod

関連する問題