UITableView innen UIViewController nicht angezeigt
Ich versuche zum einrichten einer UITableView innerhalb eines UIViewController. Ich Tue dies weil es mir erlaubt, fügen Sie eine top-bar mit den Schaltflächen speichern und Abbrechen. Ich bin mit storyboard und statische Zellen-Modell der tableview eine Eingabe von dem Benutzer (denken Sie an das event in apples Kalender-app). Ich habe die Ansicht in Xcode, aber wenn es läuft auf meinem Handy oder der simulator, der tableview nicht angezeigt. Hier ist die einfache Ansicht in Xcode:
Und dies ist, wie es zeigt, wenn es läuft:
Ich gelesen habe über das hinzufügen von Delegierten und festlegen der datasource und so, aber wirklich das ist alles nur statische Zellen mit text-Feldern keine Daten geladen werden. Warum ist das passiert und was kann getan werden, um es zu beheben? Danke!
- Es sieht aus wie Sie haben
UITableViewDelegate
zweimal stattUITableViewDataSource
. Ich weiß nicht, ob das Thema, aber man sollte es beheben. By the way, wenn Sie Betten Ihre anzeigen in einemUINavigationController
können Sie leicht hinzufügen, bar-Elemente, sogar einUITableViewController
. Wenn Sie planen, delegate und datasource-Methoden, vergessen Sie nicht, stellen Sie Ihre delegate und datasource. - Guter Fang, vielen Dank. Dass das nicht das problem zu sein, aber mit Feintuning eine Menge verschiedener Dinge und Werte im Wandel der Versuch zu Debuggen, hätte ich wahrscheinlich nicht erwischt haben, dass. Obwohl, Festsetzung und ändern, um UITableViewDataSource prompt mich zu fügen Sie die cellForRowAtIndexPath und numberOfRowsInSection Methoden.
- Können Sie zeigen eine Momentaufnahme der view-Hierarchie im storyboard?
Du musst angemeldet sein, um einen Kommentar abzugeben.
@Made2k wie Es aussieht, eine Lösung gefunden, aber für andere, die über dieses mit dem gleichen Problem, beachten Sie, dass Sie nur eine
UITableView
mit statischen Zellen innerhalb einesUITableViewController
. Dies ist nicht eine gut dokumentierte Tatsache, aber offenbar nurUITableViewController
weiß, wie zu handhaben, das layout des statischen Zellen, in der Erwägung, dass eine regelmäßigeUIViewController
nur umsetzen muss dasUITableViewDelegate
undUITableViewDataSource
Protokolle, um Anzeige von Inhalten in einer UITableView Hinzugefügt, entweder programmgesteuert oder per Storyboard oder Nib.Hoffentlich wird jemand retten einige Zeit. @Made2k die Lösung ist in Ordnung, aber macht das storyboard unnötig beschäftigt. Wenn Sie nicht müssen Verwendung eines
UIViewController
ist, dann einfach tun, Ihre Arbeit in einem gängigenUITableViewController
und sparen Sie sich eine Kopfschmerz.Wenn Sie möchten, verwenden Sie eine
UITableView
imUIViewController
Sie haben, um den ViewController eine Datenquelle und ein Delegierter der TableView und implementieren Sie MethodenIm Falle einer statischen Tabelle, in der
cellForRowAtIndexPath
Sie würde wieder in outlets der statischen Zellen. Für eine detaillierte Beschreibung schauen Sie sich diese Antwort:https://stackoverflow.com/a/19110821/3110536
Landete ich über dieses denken in einer anderen Art und Weise. Das problem, das ich dachte, dass ich hatte war, wollte ich alle die Funktionen, die ein navigation-controller bietet, aber ich brauchte das um die Basis der Steuerung, d.h. nichts, um zurück zu gehen. Ich dachte, dass der einzige Weg, dies zu tun war ein UIViewController und fügen Sie die Tabelle anzeigen und so, aber was ich kam mit, um einfach erstellen Sie einfach eine neue navigation-controller und nun diese Ansicht zeigt, wie der root-Ansicht etwa so:
Ich weiß nicht, ob das die beste Praxis, aber hoffentlich kann es helfen, jemand anderes, wenn Sie mit diesem problem.
Mann, folgenden Hack funktioniert wirklich!
Sollten Sie give it a try!
In meiner Bedingung, die ich wollte hinzufügen von Schaltflächen in meine Statische Zellen auch!und schalten Sie die Sichtbarkeit der TableView
und Laden Sie es mit neuen Daten
und so viele Dinge möglich, die Art und Weise, es zu tun!
https://stackoverflow.com/a/19110821/1752988
Hoffen, dass der oben genannte link würde helfen! (Y)