Wie füge ich eine Navigationsleiste zu einem UITableViewController in Interface Builder hinzu?
Interface builder nicht lassen Sie mich klicken Sie auf und ziehen Sie die Navigationsleiste auf einen Table View Controller!!! Es ist super frustrierend.
Alles was ich will ist eine Tabelle mit einen button Bearbeiten (fertig in interface-builder). Wenn dies nicht möglich ist, dann wie füge ich eine navbar progammatically?
Vielen Dank im Voraus.
InformationsquelleAutor der Frage klyngbaek | 2011-02-21
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der outline-view, stellen Sie sicher, dass Ihre Table View Controller ausgewählt ist.
Dann gehen Sie auf die Editor - Menü, und klicken Sie auf die Einbetten In Untermenü, und wählen Sie Navigation Controller und voila. Sie haben Ihre Navigations-controller, der auf Ihre tableview-controller mit einer Beziehung gebaut ist.
InformationsquelleAutor der Antwort Greeso
Für eine Tabelle mit einen button Bearbeiten an der Spitze, verwenden Sie einen UINavigationController, mit einem UITableView als rootView. Das bedeutet, dass Sie gehen, um eine custom UITableView eine Unterklasse für Ihre Tabelle anzuzeigen, und benutzen Sie es als rootView deiner UINavigationController-Instanz. (Ein Programm, das mit UINavigationController ist
-(id)initWithRootViewController
. Es ist auch einstellbar über IB.)Dann im UITableView eine Unterklasse, kommentieren Sie die folgende Zeile:
- und voilà, Ihr UINavigationController-Ansicht zeigt sich, wie eine table view mit einem button Bearbeiten auf der rechten Seite der Navigationsleiste.
Da der controller ist bei der stack-Spitze, es gibt keine "zurück" - button auf der linken Seite verwenden, so können Sie
self.navigationItem.leftBarButtonItem
für was auch immer UIBarButtonItem, die Sie erstellen.InformationsquelleAutor der Antwort stephenhow
Ich bin damit einverstanden, dass es schwierig ist, herauszufinden, wie zu tun, Dinge wie diese im Interface Builder, aber zum Glück ist es möglich, eine Navigation Bar und die Bar-Taste Element, um eine Tabelle Anzeigen, diese Weise. Hier ist, wie es zu tun:
BEARBEITEN
Das problem mit dem obigen Ansatz ist, dass, wie Bogatyr Punkte aus der Navigationsleiste angezeigt wird, Blättern Sie anschließend zusammen mit der Tabelle Anzeigen. Apple empfiehlt die Verwendung einer benutzerdefinierten Unterklasse
UIViewController
besitzt sowohl die Navigation Bar und eine Instanz vonUITableView
angepasst. Leider bedeutet das, dass Sie hätte zu implementieren, dieUITableViewController
Verhalten benötigt, die durch IhreUIViewController
Unterklasse selbst.Anderen Ansatz, der gut zu funktionieren scheint ist das erstellen einer benutzerdefinierten Unterklasse
UIViewController
besitzt einen leeren hintergrund-Ansicht mit der Navigation-Bar sowie eine leere Ansicht "Inhalt" (eine Instanz vonUIView
), passt unter die Navigationsleiste. Ihre benutzerdefinierten Unterklasse hätte eine Steckdose verweist auf eine Instanz vonUITableViewController
im gleichen nib-Datei.Dies hat den Vorteil, dass alle view-Komponenten erstellt und konfiguriert werden, die im Interface Builder, und erfordert nicht die Umsetzung
UITableViewController
Methoden von Grund auf. Das einzige detail, das Sie brauchen zu kümmern, die in der Tabelle View-Controller parent-wäre hinzuzufügen-Tabelle-Ansicht als unteransicht der übergeordneten Ansicht Inhalt inviewDidLoad
.Konnte der Elternteil die Durchführung der Maßnahme, die Methoden für die Navigation Bar-button-items und die Implementierung der delegate-Muster, wenn nötig.
InformationsquelleAutor der Antwort jlehr
Ab iOS6 ab, können Sie mit der container-Ansicht. Also, was Sie tun müssen, ist nehmen-View-controller, fügen Sie die Navigationsleiste, um es, dann fügen Sie eine Container-Ansicht zu demselben view controller. Es wird automatisch fügen Sie die neue view-controller-link zu Ihrer container-Ansicht. Jetzt einfach löschen, und Ihr table view controller im Storyboard. Jetzt einbetten, die das table view-controller container-Ansicht von Steuerelement ziehen. Hoffe, es hilft.
InformationsquelleAutor der Antwort cocoaNoob
Zunächst ein navigation-controller und stellen Sie das table-view-controller (als root view controller) auf den Navigations-controller. Dies ist, wie man es im Code, weil ich nicht verwenden, IB.
InformationsquelleAutor der Antwort dasdom
Warum in der Welt Sie können nicht ziehen eine navigationItem in einem .xib-Datei mit dem File ' s Owner festgelegt, die eine Unterklasse von UIViewController, und Haken Sie die navigationItem bis zu den UIViewController ist navigationItem Steckdose ist mir schleierhaft. Es scheint wie ein echtes Loch in IB /XCode-integration. Da kann man sicherlich ziehen Sie eine Instanz der ViewController auf eine xib-Datei, und ziehen Sie ein navigationItem in die ViewController, und legen Sie dann den Titel und barbuttonitems so.
Also, wenn Sie wollen, definieren Sie Ihre UITableViewController subclass-Objekt in der Navigationsleiste in der IB, die Sie haben, um Ihre TableVC Objekt in einer xib-Datei (nicht die .xib-Datei, enthält der tableview für Ihre UITableViewController, obwohl!). Sie dann entweder Haken Sie den TableVC Objekt bis zu einer Steckdose an einem anderen Objekt (wie Ihre Anwendung Delegierter), Werke, die, wenn Sie brauchen nur eine Instanz des TVC in der gesamten Lebensdauer Ihrer app, oder wenn Sie wollen, um dynamisch erstellen Sie Instanzen der TableVC in code laden Sie diese extra .xib-Datei manuell über loadNibNamed:owner:options-Methode der Klasse NSBundle.
InformationsquelleAutor der Antwort Bogatyr
Diese Schritte arbeitete für mich in iOS 9:
InformationsquelleAutor der Antwort hansengj