2016-04-09 3 views
0

В настоящее время я работаю над проектом на основе tableView в быстром режиме. В моем проекте работает два tableView. Как мой первый Tableview загружен с данными, который имеет функцию editActionsForRowAtIndexPath удалить ячейку (в Избранном) и перемещая его в мой второй tableview.I я использую следующий код .....Сохранение данных TableView в swift

firstTableView:

var arrays = ["Alpha","Beta","Gamma","Phill","Below","Above","Clean",] 
var deleted: [String] = []  
//passing data to another tableVC 
var sendSelectedData = NSString()  
let defaults = NSUserDefaults.standardUserDefaults() 
override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? { 

    let favorite = UITableViewRowAction(style: .Normal, title: "Favourite") { action, index in 
    print("favourite button tapped") 
    let editingStyle = UITableViewCellEditingStyle.Delete    
    if editingStyle == UITableViewCellEditingStyle.Delete { 
      self.tableView.beginUpdates() 
      self.deleted.append(self.arrays[indexPath.row]) 
      self.arrays.removeAtIndex(indexPath.row) 
      tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Fade) 
      self.tableView.endUpdates()    
     } 
    } 

    favorite.backgroundColor = UIColor.orangeColor() 
    return [favorite]   
} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
if (segue.identifier == "ShowDetails") {   
    // initialize new view controller and cast it as your view controller 
    let viewController = segue.destinationViewController as! favTableViewController 
    // your new view controller should have property that will store passed value 
    viewController.arrayx = deleted   
} 
} 

Над кодом работает, как я и планировал. Каждый раз, когда действие салфетки выполняется. что особенно клетки были перенесены в мой второй виде controller.But, я получаю экономию неприятности данные и перезагрузить tableview как на мой первый и второй tableView контроллер после tableViewCell были перенесен на мою второй tableView ...

Я знаю NSUserDefaults функции будет сохранить data.But, я не знаком с использованием NSUserdefaults .so, пожалуйста, кто-то момент мне направление ...

заранее спасибо ...

+0

Realm.io (https://realm.io/docs/swift/latest/) имеет самую легкую кривую обучения IMO. Их документы очень полные и удобны в навигации. –

ответ

-1

NSUserDefaults следует использовать только для хранения небольших объемов данных, т.е. : пользовательские настройки по умолчанию и не идеально подходят для представления таблицы, где в реальном мире у вас будет много данные для загрузки и отображения.

Другие собственные варианты: Coredata, решение для базы данных Apple. К сожалению, это сложный зверь и простой смертный, такой как я считаю его болью использовать.

Настоятельно рекомендуем вам исследовать с помощью Realm (https://realm.io/). Это мощное решение для базы данных, хорошо документированное и удобное в использовании (и бесплатное!). Если вы хотите узнать, как интегрировать Realm в свой проект следующее видео будет начать Вас с абсолютными основами:

https://www.youtube.com/watch?v=qGXPqDX7dsw&nohtml5=False

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