Hinzufügen neuer Registerkarten zu einem Registerkartenleisten-Controller


73

Ich erstelle eine iOS-App in der Registerkartenleiste. Der Registerkarten-Ansichts-Controller verfügt über zwei Registerkarten, die jeweils mit einem Ansichts-Controller verbunden sind.

So sieht es aus:

Geben Sie hier die Bildbeschreibung ein

Ich muss dem Registerkarten-Controller weitere Registerkarten hinzufügen. Ich mache es am Storyboard wie folgt:

  1. Ich füge einen neuen View Controller hinzu.
  2. Ich ziehe die Steuerung von der Registerkartenleiste in die neu erstellte Ansichtssteuerung.
  3. Ein Fenster wird geöffnet und ich wähle Relationship Segue-View Controller.
  4. Der Übergang vom Registerkarten-Controller zum neuen Ansichts-Controller wird erstellt.

Ich denke, das ist der Weg, aber danach zeigt der Tab-Bar-Controller keine Tab-Symbole mehr an, die Tab-Leiste wird grau.

So was:

Geben Sie hier die Bildbeschreibung ein

Ich muss wissen, was ich falsch mache.


3
Versuchen Sie, den xcode zu schließen und erneut zu öffnen, nachdem Sie Ihre Fragen gesehen haben. Ich habe der Registerkarte 7 Ansichts-Controller hinzugefügt, die einwandfrei funktionieren.
Pandey_Laxman

@Pandey_Laxman, danke. Ich werde es jetzt versuchen.
Mvasco

@Pandey_Laxman, ich habe xcode geschlossen und wieder geöffnet und das gleiche Problem tritt auf. Denken Sie, ich mache die erforderlichen Schritte, um den neuen Tab hinzuzufügen, wie ich in meiner Frage angegeben habe?
Mvasco

Ich habe den gleichen Schritt ausgeführt, indem ich einen tabBarController aus der Bibliothek gezogen habe. Dann werden nur zwei Registerkarten mit zwei VC angezeigt. Daher habe ich mehr VC hinzugefügt und das Ziehen von TabBarVC zu VCs gesteuert.
Pandey_Laxman

Sie können mit einem neuen Demo-Projekt versuchen
Pandey_Laxman

Antworten:


143

Ziehen Sie zuerst einen TabBarController aus der Objektbibliothek. Sie sehen, dass dort nur zwei Registerkarten mit ihrer VC vorhanden sind.

Um weitere Tab-Elemente in TabBarVC hinzuzufügen, ziehen Sie VC aus der Objektbibliothek

Dann steuern Sie das Ziehen von TabBarVC auf Newly VC und dann Popup-Fenster für die Segue-Beziehung

Wählen Sie das letzte Beziehungssegment -> Controller anzeigen

Hier ist der Bildschirm


Ich mache das wie Sie, aber ich denke, es gibt einen Fehler in meinem Xcode. Wenn ich dann einen neuen tabBarController hinzufüge, werden die Symbole nicht angezeigt, die Registerkartenleiste ist vollständig grau und es sind keine Symbole darauf.
Mvasco

Eigentlich bin ich auch nicht in der Lage herauszufinden, was mit dir schief geht. Ich habe auch die Option in IB für die untere Leiste der Tab-Leiste usw. ausprobiert. Du kannst deinen Xcode auf die neue Version 5.1.1
Pandey_Laxman

Dort muss etwas nicht in Ordnung sein, aber jetzt funktioniert es, nachdem das Symbol der Registerkartenleiste auf dem neu hinzugefügten Ansichts-Controller geändert wurde. Unmittelbar nach dem Hinzufügen zeigt der Registerkarten-Steuerelement jetzt alle Symbole an und die graue Registerkarte wurde entfernt. Vielen Dank auf jeden Fall.
Mvasco

1
nett von dir, froh, dir zu helfen :) du weißt, dass es viele Fehlerbehebungen, Stabilitätsverbesserungen gibt ... in xcode update, also solltest du Update-Tools haben
Pandey_Laxman

1
In Xcode 11 (mindestens ab Beta4) müssen Sie kein TabBar-Element mehr hinzufügen. Durch einfaches Ziehen mit gedrückter Ctrl-Taste von der TabBar zum Ziel-ViewController und Auswählen von "View-Controllern" aus der Beziehungssequenz wird ein TabBarItem für Sie erstellt (Standard wird angezeigt) um eine benutzerdefinierte Ansicht zu sein) und das TabBarItem wird einfach als "Element" bezeichnet.
Heckj

7

Ich hatte das gleiche Problem, bis ich der neuen Ansicht ein Registerkartenleistenelement aus der Objektbibliothek hinzufügte (Einstellungen der Attribute im rechten Bereich) und DANN die Strg-Taste vom Registerkartenleisten-Controller in die neue Ansicht zog, um einen Beziehungsübergang zu erstellen.

Wenn ich versucht habe, die Strg-Taste vom Registerkarten-Controller zu ziehen, ohne zuvor der neuen Ansicht ein Registerkartenelement hinzuzufügen, hatte es das von Ihnen beschriebene Verhalten.


1
Vielen Dank für Ihre Antwort! Nachdem Sie versucht hatten, dies zu lösen, war Ihre Antwort der Hinweis, dass ich vermisst wurde
ajk4550

1
DANKE DANKE DANKE 3 ½ Jahre später! Ich habe ungefähr eine Stunde damit verbracht, das herauszufinden.
Mlecoz

4

Überprüfen Sie unbedingt die Größe Ihres Symbolbildes. Der Farbton des hinzugefügten Bildes ist standardmäßig grau. Wenn Sie ein großes Bild in der Registerkartenleiste haben, kann es so aussehen, als ob die gesamte Registerkartenleiste aus irgendeinem Grund ausgegraut ist. pic ändert die Größe nicht automatisch.


Das war die Lösung für mich. Das Standard-Symbol in der Registerkartenleiste war nur ein riesiges graues Rechteck, wie oben angezeigt. Durch einfaches Ändern des Bildes des Balkenelements in das neue Symbol wurde es für mich behoben.
Roller

1

Der folgende Prozess folgt in Xcode 9.4, um ein neues Element in der Registerkartenleiste hinzuzufügen. 1) Ziehen Sie den neuen Tab Bar Controller per Drag & Drop in das Sotrtyboard. 2) Es werden 2 Elemente angezeigt, die mit 2 View Controllern verbunden sind. 3) Zum Hinzufügen der dritten Elementschaltfläche in der Registerkartensteuerung i) Fügen Sie eine neue Ansichtssteuerung hinzu. ii) Klicken Sie mit der rechten Maustaste auf den Registerkarten-Controller und ziehen Sie ihn in den neuen Ansichts-Controller. iii) In diesem Popup wird ein Options-Popup angezeigt. Wählen Sie die Option "Controller anzeigen"

Es wird ein Beziehungslink erstellt und eine automatische Elementschaltfläche in der Registerkartensteuerung generiert.


0

Sie müssen dem 3rd View Controller ein Symbol hinzufügen / ziehen (von der Anzeige der Medienbibliothek), damit es ordnungsgemäß angezeigt werden kann.


0

Durch einen Neustart von Xcode 6.1.1 wurde das Problem für mich behoben, während ich an mehreren Projekten arbeitete.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.