2016-05-29 2 views
0

У меня есть приложение для iOS, которое я хотел бы, чтобы люди прокручивали по ячейке таблицы, чтобы добавить эту ячейку в таблицу избранных страниц.Добавить ячейку в избранное tableview с основными данными

Он должен будет использовать основные данные, чтобы сохранить избранное после выхода приложения.

Любая помощь будет оценена!

Это то, что я до сих пор для действия ячейки салфетки:

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 вместо Core Data.

Чтобы сохранить массив в избранное:

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. Сначала я имел ввиду, что вам нужно сохранить только идентификатор или что-то подобное, которое ссылается на содержимое ячейки, которая была сохранена. Будет ли у вашей камеры только изображение или более сложная структура данных? Если это только изображение, метод выше будет работать. Если, однако, вы хотите сохранить больше данных, то действительно основные данные будут лучшим выбором. –

+0

Я хочу, чтобы ячейка сохраняла текстовое изображение, а также его действие (изменение вида) – Jacksmackod

Смежные вопросы