2013-04-27 13 views
7

Ich weiß, ich kann nur den ursprünglichen View-Controller löschen und einen Table View-Controller im Storyboard platzieren, aber dies erfordert, dass ich neu erstellen die Beziehungen zwischen den Vorher- und Nachher-View-Controllern.Praktisch ein View-Controller-Objekt während der Entwurfszeit in Table View-Controller konvertieren (Storyboard)

Gibt es einen einfacheren oder bequemeren Weg, den Typ des Objekts während der Entwurfszeit im laufenden Betrieb zu konvertieren? Dies scheint eine sehr häufige Aufgabe zu sein (zumindest in meinen eigenen Projekten), und ich würde mir vorstellen, dass es dafür in Xcode eine Option gibt.

Antwort

0

Öffnen Sie in Xcode das Fenster 'Dienstprogramme' (es erscheint von rechts), klicken Sie auf 'Identity Inspector' und wählen Sie dann im Bereich 'Benutzerdefinierte Klasse' eine andere Klasse aus. Beachten Sie jedoch, dass dies die Ansicht im verknüpften Controller nicht ändert. Sie müssten die Ansicht entfernen und eine UITableView hinzufügen. Dann müssen einige Delegiertenverbindungen hergestellt werden.

Ich habe getan, was Sie mehrmals beschreiben. Manchmal lösche ich das Ziel und beginne erneut. manchmal tue ich so, wie ich es beschreibe und handele.

+0

In dem Versuch, die entgegengesetzte Konvertierung (TableViewController-> ViewController) zu tun, kann ich die Tabellenansicht löschen, aber ich kann nicht in einer neuen regulären Ansicht ablegen. Ich musste auf den XML-Code zurückgreifen. –

2

Soweit ich weiß, gibt es in Xcode keine Benutzeroberfläche, mit der Sie dies tun können. Sie können jedoch die Storyboard-Datei im XML-Editor öffnen (indem Sie den Versionseditor aktivieren) und den Namen des Knotens von <viewController ...> in <tableViewController ...> ändern. Vergessen Sie nicht, das schließende Tag auch in </tableViewController> zu ändern.

+0

Ich habe dies auf dem neuesten Xcode (5.1) versucht und es scheint die Validierung fehlgeschlagen und wird nicht geöffnet. Ich habe nicht nach dem Grund gesucht. –

+0

Sie müssen zusätzliche Anpassungen vornehmen, z. B. alle Parameter für 'tableView' aus dem' '- Bit entfernen. Dann läuft es perfekt. – SaltyNuts

2

Was ich getan habe, ist die Erstellung eines UITableViewController in IB, das Storyboard mit einem Texteditor öffnen und alle Knoten innerhalb des UIViewController in den UITableViewController kopieren.

Ich denke, dass auf diese Weise weniger Gefahr besteht, etwas Wichtiges zu löschen.

Bevor die Abschnitte Objekte zu kopieren, stellen Sie sicher, dass beide Tableviews (UIViewController und UITableViewController) haben die gleichen Eigenschaften festgelegt, wie: statische oder dynamische Zellen, Stil (plain oder gruppiert) usw.

+0

Dies ist die einzige Methode, die für mich beim Konvertieren eines TableViewControllers in einen normalen ViewController funktionierte.(eigentlich traurig) –

+0

Ich konvertierte von TableViewController zu ViewController, indem ich einfach in im Texteditor änderte und es funktionierte einfach. – Sravan

0

Die folgenden nicht genau beantworten Sie die Frage, aber ich denke, dass es auf die Absicht der Frage reagieren kann.

Die einfachste Methode zum Ersetzen eines regulären Ansichtscontrollers und Views durch einen Tabellenansichtscontroller und eine Tabellenansicht besteht darin, einen Tabellenansichtscontroller aus dem Objektmenü in einen leeren Bereich des Canvas zu ziehen, um eine neue Szene zu erstellen. Wenn die Tabellenansichtsszene die erste Ansicht Ihrer App sein soll, ziehen Sie den Pfeil, der auf die View-Controller-Szene zeigt, in die neue Szene. Wenn Sie jetzt nichts mehr vom alten View-Controller benötigen, löschen Sie ihn einfach.

Siehe Lernprogramm here.

Was Sie jedoch wirklich wollen, wenn Sie in Detailansichten aus der Tabellenansicht drillieren möchten, ist ein Navigationscontroller. Das Navigationssteuerungsobjekt erstellt standardmäßig eine Tabellenansichts-Szene als Root-Ansichts-Controller.

Verwandte Themen