2016-05-30 8 views
1

Ich habe eine Kindklasse von UITableViewController gemacht und dann stellen Sie die Ansicht in der UIStoryboard.Einstellung der UITableView der Klasse "verbirgt" den Ausgangsteil der Ausgänge

Das Problem ist, dass beim Start der App der Bildschirm schwarz wird und ich denke, das könnte daran liegen, dass der View-Ausgang der Ansicht nicht richtig eingestellt ist. Ich sah, dass die Steckdosen waren anders, indem Sie diese Ansicht zu den anderen: Ich habe nicht die "Outlets" Teil der Steckdosen und so kann nicht die "View" und Tisch Steckdosen.

Wenn Sie die Klasse aus der Ansicht entfernen, können diese Ausgänge (im nicht verbundenen Zustand) angezeigt werden.

Was ist los?

  • Auslässen ohne die Klasse festgelegt:

enter image description here

  • Auslässen mit der Klasse eingestellt:

enter image description here

+0

Wenn Sie denken, dass Ihre Frage missverstanden ist, versuchen Sie, Code oder einige Bilder über Ihr Projekt hinzuzufügen. –

Antwort

0

So konnte ich finden, was das verursacht hat, aber ich weiß nicht, warum es nicht tut.

Zuerst in der Datei, wo meine DevicesViewController: UITableViewController-Klasse deklariert ist, hatte ich Erweiterungen der Klasse vor die Klassendeklaration deklariert.

Zweitens in einer anderen Datei hatte ich eine Erweiterung von DevicesViewController deklariert.

Mit allen Erweiterungen von DevicesViewController deklarieren sie in der gleichen Datei, nach die Klasse löste das Problem.

Scheint wie ein Fehler von Xcode/Swift. Das Festlegen von Erweiterungen an einer anderen Stelle als nach der Klasse verursacht dieses Problem. Dies ist das gleiche Problem wie beim Festlegen der Klasse der Sicht auf eine nicht vorhandene Klasse. Ich denke, dass Xcode die Klasse nicht finden kann, wenn sie eine Erweiterung zu dieser Klasse findet, bevor sie die Klasse selbst findet. Ich schließe, dass die Erweiterungen eines View-Controller in der gleichen Datei und nach der Klasse der View-Controller deklariert werden müssen.

0

Wenn Ihre Steckdosen Registerkarte verschwinden aus Ihrem Anschlüsse Inspektor etwas im Identität Inspektor passiert ist:

enter image description here

, wo Sie die Klasse ändern Feld appartenence haben.

Tatsächlich sind sie direkt verbunden, so dass jede Änderung des Klassentyps den zu dieser Klasse gehörenden IBOutlets-Code widerspiegelt und der Connector Inspector mit der in dieser Klasse vorhandenen IBOutlets-Liste aktualisiert wird.

Wie im Kommentar unten erläutert wird, müssen Sie ausgewählt, um die „gelbe Taste“ wie dieses Bild:

enter image description here

die Klasse angeben, wo Sie verknüpfen möchten, die anderen Stimmen unter der gelben Reihe Preload View-Controller in meinem Beispiel das Objekt innerhalb der Klasse wie Ansicht sind etc ..

UPDATE: in dem Link Ihrer in Ihrem Kommentar gemeldet hat (https://github.com/luinily/hOme/blob/VIP-Object-Creator/hOme/Scenes/Devices/DevicesViewController.swift) gibt es nicht IBOutlets so es korrekt ist Sie sehen es nie in Connectors Inspector

+0

Vielen Dank für Ihre Antwort ich, dass dank verstehen, die Sache ist, dass die Klasse I zuweisen erbt UITableViewController: Klasse DevicesViewController: UITableViewController { } Für andere TableViewControllers eine Klasse Einstellung, die UITableViewController erbt nicht die Steckdosen verstecken. Ich habe versucht zu sehen, was sich zwischen den Klassen unterscheidet, die keine Probleme verursachen, aber ich kann nichts sehen. Hier ist ein Link zu der Klasse, die ich auf die Ansicht gesetzt habe https://github.com/luinily/hOme/blob/VIP-ObjectCreator/HOme/Scenes/Devices/DevicesViewController.swift – Luinily

+0

Ihre Antwort gewählt! Wurde nicht validiert, da es nicht ausreicht, um das Problem zu lösen. – Luinily

+0

Sie müssen immer den benutzerdefinierten Namen der Klasse verwenden, nicht die generische Typologie wie UIViewController oder UITableViewController, sie können nicht die IBOutlets haben, die Sie in Ihrer benutzerdefinierten Klasse melden. Zum Beispiel, wenn Sie im Storyboard sind. Jetzt werde ich meine Antwort aktualisieren, um anzugeben, wie. –