2016-10-29 5 views
0

Ich habe zahlreiche Xcode Projekte erstellt, um zu sehen, ob dies ein einzelnes Projektproblem ist, aber nein. Das Problem, das ich bekomme, ist, dass, wenn ich eine UITableVIiew mit entweder lokalen Daten oder Daten, die in einer Parse-Datenbank gespeichert ist, wird es nicht angezeigt.Es werden überhaupt keine Daten in UITableView angezeigt.

Ich habe versucht, Xcode neu zu installieren, mein Projekt zu säubern und durch den Code/das Projekt zu gehen, um zu sehen, ob ich einen Fehler gemacht habe, aber alles sieht an seinem Platz aus.

Ein Beispiel ist, dass ich eine UITableViewController mit einer UIImage in der Zelle erstellt habe und wenn ich das Projekt erstellen und ausführen, wird es nicht angezeigt. Hier

ein Beispiel: enter image description here

Vielen Dank im Voraus.

+0

Sie haben diese Frage markiert Swift. Bitte aktualisieren Sie Ihre Frage mit Ihrem relevanten Swift-Code. – rmaddy

+0

@kraddy. Mein Fehler dort ist kein Code. All das ist Storyboard basiert –

+1

Ich dachte, das könnte ein Fehler mit Xcode sein, aber ich bin überrascht, dass es nicht behoben wurde, wenn ich Xcode entfernte und neu installierte.Hat jemand anderes dieses Problem? –

Antwort

0

Sie sollten zwei erforderliche Methoden von UITableViewDataSource implementieren.

So etwas:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return 5; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; 
    return cell; 
} 
+0

Danke für die Antwort, aber ich habe eine Swift Coca-Klasse für meine Tabellenansicht erstellt mit den oben genannten Methoden –

+0

Sie sagten in Ihren Kommentaren oben, dass es keinen Code gab. Jetzt sagst du, dass es da ist. Wenn es Code gibt, redigiere deine Frage und poste sie. – Frankie

+0

@Frankie Nur Code, der von Xcode erstellt wurde, als ich eine Swift-Datei erstellt habe. Ich persönlich hatte noch nicht die Chance, irgendeinen Code zu schreiben, bis ich dieses Problem behebe –

0

Dies würde schneller gehen, wenn Sie nur den verfügbaren Code geschrieben ... Annnnyway ...

Der Grund, warum ich frage ist, weil, wenn Sie dies getan haben Im Storyboard, und es ist eine dynamische Tabelle, sieht die Tabelle zu Ihrer numberOfRowsInSection Methode, um zu sehen, ob es die Tabelle bevölkern sollte oder nicht. Wenn dies 0 ist, erhalten Sie keine Zeilen, unabhängig davon, was Sie in das Storyboard geschrieben haben.

Wenn Sie in Ihrer cellForRowAtIndexPath eine Zellen-ID cell haben, aber Ihre Storyboard-Zelle nicht als cell identifiziert haben, erhalten Sie immer noch leere Zellen.

Wenn Sie diese beiden Methoden korrekt implementiert haben, müssen Sie außerdem sicherstellen, dass diese Tabelle als Datenquelle an diese Klasse angeschlossen ist, entweder über Storyboard oder programmatisch.

Aber das sind alles nur Vermutungen, denn ich müsste Code sehen, um es herauszufinden.

+0

Ich schätze Ihre Antwort und Hilfe sehr. Ich habe den "cellForRowAtIndexPath" in meine Frage eingefügt, aber wenn Sie den vollständigen Code hier sehen möchten, ist ein Link zu meinem Projekt - https://www.dropbox.com/s/etcp5hz6uxkeqo3/Iconic.zip?dl=0 –

+0

@TimSmith: Ich habe Ihr Projekt überprüft und es funktioniert gut. Es lädt das Bild in die Zelle, benötigt aber ein paar Sekunden zum Laden (hängt von der Netzwerkgeschwindigkeit ab). Das Standardbild wird nicht geladen, da Sie nach dem Aufruf der cellForRow-Methode den Inhalt direkt analysieren (Wenn Sie cell1.cellImageNailView auskommentieren? .file = imageFile cell1.cellImageNailView.loadInBackground() können Sie Ihre Bilder sofort sehen) –

+0

@MidhunMP Ich habe letzte Nacht auf Xcode 8.1 aktualisiert und mein Projekt auf dem iPhone 7 Simulator getestet und es hat nicht funktioniert, also habe ich es auf meinem iPhone 6s ausprobiert und es hat funktioniert! Ich musste keinen Code ändern. Ich denke, das könnte eine Art Bug gewesen sein? Danke für die Hilfe sehr geschätzt –

0

Wenn Sie eine UITableViewController verwenden, haben Sie die Zellen in statische geändert?

enter image description here

0

Sie sagten, Sie haben keine benutzerdefinierten Code andere als das, was Xcode bietet. Das ist dein Problem.

Sie müssen die UITableViewDataSource-Methoden implementieren, um Ihre Daten in Ihrer Tabellenansicht zu installieren. Xcode macht das nicht. Der Code, den Xcode in Ihren View-Controller einfügt, teilt der Tabellenansicht mit, dass keine Daten vorhanden sind. Sie müssen angeben, dass mindestens ein Abschnitt und mindestens eine Zeile in diesem Abschnitt vorhanden ist. Sie müssen dann Code für cellForRowAtIndexPath schreiben, der Daten von Ihrem Modell in Ihre Zellen installiert.

Nikita listet 2 der 3 Methoden auf, die Sie implementieren müssen, bevor Sie mit der Tabellenansicht etwas anfangen können.

Verwandte Themen