Statische Tabellenansicht außerhalb von UITableViewController

159

Nach dem neuen Xcode-Update wird meine App nicht validiert und zeigt diesen Fehler an:

statische Tabellenansichten sind nur gültig, wenn sie in UITableViewController-Instanzen eingebettet sind

Irgendwelche Chancen, leicht zu lösen?

Francesco S.
quelle
Hängt davon ab, warum Sie eine UIViewController-Unterklasse anstelle eines UITableViewControllers verwenden.
David Berry
3
Weil ich andere Elemente in der Ansicht brauche, die nicht zu einem UITableViewController gehören
Francesco S
1
Das gleiche Problem hier erleben. Gerade ein Upgrade (oder ein Downgrade, wie es scheint, bisher) auf Xcode 5.1 und ich habe das gleiche Problem. Ich habe eine Reihe statischer Zellen in einer UITableViewController-Unterklasse in meinem UISplitViewController.
Stefan Arambasich
Begann auch für mich nach dem Upgrade. Ich habe einige View-Controller mit statischen Zellen aufgebaut, es ist nicht ideal, aber es hat vorher gut funktioniert.
JDMUNRO
Sie müssen UITableViewController nicht verwenden. Sie erhalten diesen Fehler, wenn Sie statische Tabellenansichtszellen in Ihrer UiTableView haben. Ich denke, eine einfache Lösung ist, wenn Sie die Zellen benötigen, lassen Sie sie nicht statisch. Fügen Sie einfach
Tableview

Antworten:

341

Die einzige Möglichkeit, eine statische UITableView zusammen mit anderen Steuerelementen auf demselben Bildschirm abzurufen, ist die Verwendung einer Containeransicht. Folgen Sie diesem Weg, es funktioniert perfekt:

  1. Ziehen Sie einen ViewController auf Ihr Storyboard.
  2. Ziehen Sie einen TableViewController auf Ihr Storyboard.
  3. Weiter Ziehen Sie eine Containeransicht auf Ihren ViewController und passen Sie sie an die gewünschte Größe an (kleiner als die Ansicht) -> Wenn Sie die Containeransicht ziehen, werden ein Übergang und eine andere Ansicht erstellt. Entfernen Sie diesen Abschnitt und zeigen Sie ihn an.
  4. Klicken Sie dann bei gedrückter Strg-Taste in Ihren Container und ziehen Sie ihn auf Ihren neuen TableViewContoller. Wählen Sie Einbetten.
  5. Gestalten Sie Ihre TableView nach Ihren Wünschen -> einschließlich statischer Zellen.

Viel Glück.

Diese Antwort wurde bereits hier gefunden und gegeben: G.Huebner -> http://web.archive.org/web/20140928102504/http://iphonedevsdk.com/forum/iphone-sdk-development/111800-static-table- view-cells-only-work-in-a-uitableviewcontroller.html

LukeSideWalker
quelle
Wo kann man etwas unternehmen oder Maßnahmen ergreifen? In UIViewControlleroder sollte ich nehmen müssen UITableViewController.
Bhavin Ramani
@ Bhavin Ramani: Da es sich um einen UITableViewController im Container handelt, empfehle ich, genau diese Klasse / Unterklasse für das Halten Ihrer IBOutlets zu verwenden.
LukeSideWalker
2
Ich denke, die gesamte Idee der "statischen Zellen" wird auf eine Weise implementiert, die von einigen internen Funktionen von abhängt UITableViewController.
Nicolas Miari
2
Danke dafür. Kann bestätigen, dass es in Xcode 8.3.1 funktioniert.
Atharva Vaidya
Einfach super! Ich habe jetzt schon eine Weile nach dieser Lösung gesucht.
Jason Foglia
8

Eine statische UITableView muss sich in einem UITableViewController befinden. Sie müssen die Tabelle also in UITableViewController platzieren und sie dann als childView zum MainViewController hinzufügen.

Sie können auf https://iphoneidoit.blogspot.in/2013/10/static-uitableview-in-uiviewcontroller.html verweisen

Sahana Kini
quelle
1
Früher gab es viele Möglichkeiten, dies zu umgehen (z. B. die Zelle beizubehalten), aber jetzt ist es trotzdem ein Fehler. Ich denke, die Frage schlägt vor, ob es einen Weg gibt, den Fehler zu unterdrücken.
Matthew Knippen
Ja es war. Leider habe ich das Problem mit einer nicht statischen tableView gelöst
Francesco S
1
Huch. Der Umfang der Nacharbeit, die erforderlich wäre, um aufgrund aller IBOutlets in meiner View-Controller-Datei in nicht statisch zu konvertieren, ist zu hoch, und IMO ist es nicht akzeptabel, dass ein Update dies ohne Warnung oder Hinweis im Änderungsprotokoll unterbricht ( Ich gehe davon aus, dass es auf dem Papier immer noch vollkommen gültig ist, eine UITableViewControllermit statischen Zellen in einer zu haben UISplitViewContoller. Ich habe den Entwickler-Support von Apple kontaktiert und nur eine allgemein nicht so hilfreiche E-Mail-Antwort erhalten, die mich mit den Foren verbindet. Ich nehme an, ich werde es dort versuchen und sehen wenn jemand anderes die gleichen Probleme nach dem Update hat.
Stefan Arambasich
4

Ich denke, Sie ziehen zuerst den ViewController auf das Storyboard und dann die tableView auf den ViewController. Auf diese Weise können Sie die statischen Tabellenzellen nicht verwenden. Stattdessen sollten Sie den TableViewController anstelle eines ViewControllers auf das Haupt-Storyboard ziehen und dann die statischen Zellen auswählen. Auf diese Weise können Sie statische Zellen bearbeiten und beliebige Elemente für statische Zellen verwenden.

Hellosheikh
quelle
0

Wenn Sie wirklich eine statische tableView verwenden, sollten Sie in Betracht ziehen, alles in eine ScrollView oder StackView zu kopieren / einzufügen.

River2202
quelle