2016-05-09 8 views
0

Ich habe eine Tabellenansicht, dass der Benutzer Rezepte hinzufügt und gerade jetzt sortiert es nur nach der Reihenfolge, die sie die Rezepte hinzufügen. Ich möchte, dass die Tabellenansicht nach dem Rezeptnamen (UILabel) A-> Z sortiert wird. Ich bin mir nicht sicher, welcher Code hilfreich ist, aber unten ist die Datenklasse, die ich eingerichtet habe, und der UI-Label-Ausgang hat in UITableViewCell den Namen recipeNameLabel.Sortierung Tabellenansicht nach UI Label Name

class Recipe: NSObject, NSCoding { 

    var name: String 
    var servings: String 
    var category: String 
    var prepTime: String 
    var cookTime: String 
    var source: String 
    var sourceURL: String 
    var photo: UIImage? 
} 

Ich nannte dies in UITableView das Datenmodell abzurufen:

var recipes2 = Recipe() 

Antwort

1

Sie benötigen das Array, das Sie als Datenquelle verwenden zu sortieren. Angenommen, Sie haben eine Reihe von Recipe s:

var recipes = [Recipe]() 

Sie sort benutzen konnten die Rezepte durch ihre name Eigenschaft zu sortieren:

recipes = recipes.sort({ current, next in 
    return current.name < next.name 
}) 
+0

toll gearbeitet ... Frage ist nur, es funktioniert nur, wenn die App ist geladen. Wenn der Benutzer in der App ist und ein neues Rezept hinzufügt, geht es einfach nach unten. Gibt es einen Update Table View-Befehl, den ich starten kann, um neu zu sortieren, wenn ein neues Rezept hinzugefügt wird? –

+0

Außerdem habe ich den obigen Code in ViewDidLoad implementiert. Ist das richtig? –

+1

Sie können 'reloadData()' für Ihr 'UITableView' aufrufen, um seine Daten nach dem Umsortieren zu aktualisieren. –