2015-11-17 10 views
18

Ich versuche, die neuen Storyboard-Referenzen in einer Tableiste zu verwenden. Wenn ich die Storyboard-Referenz verwende, zeigt das UITabBarItem (mit angepasstem Bild & Textsatz) nichts an. Siehe Setup: storyboard setupUItabbar-Element zeigt keine Storyboard-Referenz

tabbaritem setup

Ich reparierte es jetzt durch die Bilder & Titel in der initWithCoder Funktion für den ersten Viewcontroller in den genannten Storyboards Einstellung wie folgt:

static NSString *const ContactsViewControllerTabContactImageName = @"tab-contact"; 
static NSString *const ContactsViewControllerTabContactActiveImageName = @"tab-contact-active"; 

- (instancetype)initWithCoder:(NSCoder *)aDecoder { 
    self = [super initWithCoder:aDecoder]; 
    if (self) { 
     self.title = NSLocalizedString(@"Contacts", nil); 
     self.tabBarItem.image = [UIImage imageNamed:ContactsViewControllerTabContactImageName]; 
     self.tabBarItem.selectedImage = [UIImage imageNamed:ContactsViewControllerTabContactActiveImageName]; 
    } 
    return self; 
} 
+2

Ab Xcode 8.3.x ist dies immer noch das beobachtete Verhalten. Ich halte dies für einen Fehler, da ich glaube, dass die _storyboard-Referenz_ eigentlich das TabBar-Element bereitstellen sollte. Es sieht so aus, als wäre der Workaround, wie er von @leogdion beschrieben wird, der richtige Weg. – CouchDeveloper

+0

@CouchDeveloper hast du (oder jemand anderes) dies in Xcode 9 getestet? Es sieht für mich auch definitiv wie ein Käfer aus. Es sollte möglich sein, dies unter Verwendung der Referenz einzustellen. – Ixx

Antwort

68

Sie müssen die Tab-Leiste Element in der Ziel Storyboard-Ansicht-Controller hinzuzufügen.

Interface Builder View of Destination Storyboard

+2

Dies ist die richtige Lösung für dieses Problem. Vielen Dank für Ihre Antwort. –

+0

Großartig. Bitte @ Bob-Voorneveld als korrekt markieren. – leogdion

+1

Genau wie UINavigationItems (manchmal). Danke für die Antwort. – VaporwareWolf

-3

Sie bekommen können Storyboard-Referenz wie folgt

UIStoryboard * mainStoryboard = [UIStoreboard StoryboardWithName: @ "MainStoryboard" Bündel: Null];

3

Diese Antwort ist ziemlich spät, aber ich hatte ein ähnliches Problem. Dies kann hilfreich für andere sein, die diesen Beitrag später finden.

Wenn ein UISplitViewController mit gibt es eine Ausgabe für mich das Produkt in der Storyboard Zugabe, die mit einer Vermeidung des Problems gelöst werden können.

Szenario:

UITabBarController -> StoryboardReference -> UISplitViewController

Problem:

Sie können keine UITabBarItem zum

Lösung/Abhilfe UISplitViewController hinzufügen:

Fügen Sie einen UITabBarController im Storyboard von UISplitViewControllers hinzu und weisen Sie den UISplitViewController als eine der Registerkarten zu. Ein UITabBarItem wird dem UISplitViewController hinzugefügt. Sie können den unnötigen UITabBarController löschen. Das UITabBarItem wird beibehalten.

+0

Danke für diese Info, aber Ihr Problem kann auch Das liegt daran, dass "Split-View-Controller normalerweise im Stammverzeichnis Ihres App-Fensters installiert sind", wie in der [offiziellen Dokumentation] (https://developer.apple.com/reference/uikit/uissplitviewcontroller) beschrieben. – CouchDeveloper