2016-07-20 37 views
1

Grundsätzlich versuche ich, einen Wert von einem benutzerdefinierten table view cell zu bekommen, wie ich 5 Prototyp-Zellen gemacht habe - jeder mit einem anderen tableViewCell class. Was ich versuche, ist jedoch, die Daten aus der Zelle oben zu lesen. Ich habe meine Klassen genannt: TableViewCell1, TableViewCell2 etc ... Also auf den cellForRowAtIndexPath, ich den Code wie diese:Swift - Lesen über Zelle Wert in der Tabellenansicht

if indexPath.row == 1 { 
    let cell2 = tableView.dequeueReusableCellWithIdentifier("secondCell", forIndexPath: indexPath) as! TierCell2  

    return cell2 
} 

Dies funktioniert, aber ich habe auch versucht, es so zu tun, um den Zugang zu der Lage sein, die Wert über (ohne Glück) - was nur zu einem optionalen Wertfehler führt.

let cell1:TableViewCell1 = TableViewCell1() 
cell2.PriceText.text = cell1.PriceText.text 

Irgendwelche Ideen, wie ich das erreichen könnte?

+0

Weitere Informationen könnten Ihnen helfen, was Sie erreichen möchten. Da die TableViewCells für die Zellen, die gerade angezeigt werden, benötigt werden, müssen Sie die Informationen erhalten, die Sie aus der Datenquelle suchen ... Aber wenn Sie mehr Informationen bereitstellen, was Sie erreichen möchten, könnten die Dinge möglicherweise sei klarer .... – Azzaknight

+0

@Azzaknight Grundsätzlich versuche ich eine Preis-Tier-Ansicht anzuzeigen, die die Benutzer-Preis-Ebene für einen bestimmten Dienst zeigt. Ich möchte den Wert aus einem Array von Wörterbüchern anzeigen und dann in einer Tabellenansicht anzeigen. Das ist kein Problem - jedoch; um sicherzustellen, dass ein Wert nicht zweimal angezeigt wird - oder keine Leerzeichen in der TableView haben, muss ich überprüfen, ob der Wert in der Zelle oben angezeigt wird. Ähnlich wie: wenn allTiers [0] [2] = nil && cellAbove.PriceText.text = allTiers [0] [2] { cell2.PriceText.text = allTiers [0] [2] } – askaale

+0

dann! meine nächste Frage - warum die 5 separaten benutzerdefinierten Tabellenzellen? Warum nicht eine benutzerdefinierte Zelle mit den 5 Etiketten, um die gestuften Daten anzuzeigen? – Azzaknight

Antwort

0

Ich schlage vor, dass Sie dann versuchen, eine benutzerdefinierte Tabellenansicht Zelle mit den 5 Preisebenenbeschriftungen zu erstellen, die Sie anzeigen möchten. Dann im cellForRowAtIndexPath entpuppen Sie einfach eine Zelle als die benutzerdefinierte Klasse und füllen alle Tierinformationen aus, die Sie bereits in Ihrem Wörterbuch haben, und geben diese Zelle zurück.

+0

Ich habe das jetzt gemacht. Allerdings muss ich mein Wörterbuch nach Schlüssel sortieren (absteigende Reihenfolge), da ich ein Wörterbuch von [Int: Int] habe, und es dann in der TabelleView mit den Daten anzeigen. Wie genau würde ich das tun? – askaale

+0

Meine nächste Frage - Warum ist Ihre Datenstruktur ein Wörterbuch? Welche Daten speichern Sie im Wörterbuch? – Azzaknight

Verwandte Themen