2016-04-09 21 views
0

Ich arbeite derzeit an einem TableView-basierten Projekt in Swift. Ich habe zwei TableView in meinem Projekt ausgeführt. Als mein erstes Tableview mit Daten geladen, die eine editActionsForRowAtIndexPath Funktionszelle zu löschen (der als Favorit) und bewegt es zu meinem zweiten tableview.I des folgenden Code verwenden .....Speichern von Tableview-Daten in 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   
} 
} 

Der obige Code funktioniert wie geplant. Jedes Mal, wenn die Wischaktion ausgeführt wird. dass bestimmte Zelle zu meinem zweiten Blick controller.But bewegt worden ist, bin ich Mühe, Daten zu speichern und neu laden tableview auf meine beiden ersten und zweiten tableView-Controller nach tableViewCell zu meinem zweiten tableView ... verschoben

I NSUserDefaults Funktion wissen speichern data.But, ich bin nicht vertraut mit NSUserdefaults .So, bitte jemand zeigen Sie mir die Richtung ...

Vielen dank im Voraus ...

+0

Realm.io (https://realm.io/docs/swift/latest/: Wenn Sie erfahren möchten, wie Realm in das Projekt zu integrieren, das folgende Video werden Sie mit den absoluten Grundlagen beginnen) hat die einfachste Lernkurve IMO. Ihre Dokumente sind sehr umfassend und einfach zu navigieren. –

Antwort

-1

NSUserDefaults sollte nur für die Aufbewahrung von kleinen Datenmengen verwendet werden, dh : Benutzer Standardeinstellungen, und ist nicht ideal für eine Tabellenansicht, wo in der realen Welt Sie eine Menge haben werden Daten zum Laden und Anzeigen.

Weitere native Optionen sind Coredata, Apples Datenbanklösung. Unglücklicherweise ist es ein komplexes Biest und ein Sterblicher, so wie ich es als Schmerz empfinde.

Ich empfehle dringend zu untersuchen mit Realm (https://realm.io/). Es ist eine leistungsstarke Datenbanklösung, gut dokumentiert und einfach zu bedienen (und kostenlos!).

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

Verwandte Themen