Situation: zwei UITabBarControllers, jede mit ihren eigenen Registerkarten, aber die letzte Registerkarte in beide ist identisch, so wollen eine UIViewController Inhalt zeigen.Zwei UITabBarControllers, die einen ViewController teilen (als Tab-Inhalt)?
Problem zur Laufzeit: Gemeinsame Element erscheint nur in eine der Registerkarte setzt wenn angezeigt.
Frage: kennt jemand einen Weg, um dies zu arbeiten?
Link zu externer Grafik von Storyboard-Setup: (sorry, nicht genug Ruf Bilder hier zu schreiben!) Storyboard graphic
Ein Xcode-Projekt mit dem Storyboard: XCode Project
Jedes Element Registerkarte Inhalt hat seine eigene UIViewController-Klasse. Sie enthalten keinen Code außer der Zeile, damit die Zurück-Schaltflächen funktionieren.
(Ja, ich weiß, das ist seltsam. Wirkliche Situation ist eine iPad-App, wo Tab-Controller in Popovers angezeigt werden; Popovers sind "Property-Editoren", wo verschiedene Objekte unterschiedliche Eigenschaften haben, aber alle einen gemeinsamen Satz von Eigenschaften haben. Also eine Registerkarte für "einzigartige" Requisiten, eine gemeinsame Registerkarte Inhalt für die "gemeinsame" Requisiten alle Objekte haben.)
Ich habe ein paar Wege um dies zu bekommen, um den Effekt, den ich will, aber wenn dieses Storyboard arbeitete es wäre eine viel einfachere Lösung.
- Weitere Informationen, etwas in keinem Zusammenhang mit Frage -
Alternative Lösung Ich verwende: TabBarControllers nur auf einen VC Link als Registerkarte Inhalt. Wenn diese Registerkarte VC lädt, verwende ich Code, um (a) freigegebene VC vom Storyboard nach Bezeichner zu instantiieren, (b) das neue VC-Objekt über [tabController setViewControllers: list animated: NO] zum TabBarController hinzuzufügen.
(Eine andere mögliche Lösung Ich mag noch weniger:.. Keine TabBarController verwenden und präsentieren Inhalt VC mit meinem eigenen „Tab“ Grafik in ihnen gezogen, die jeweils zeigen, „ich selbst“, wie ausgewählte Yuk)
Also ich habe eine funktionierende Lösung, ich bin nur neugierig, warum das nicht funktioniert (nur eine bekannte Sache in iOS-API, oder einige magische Eigenschaft Einstellung, die es funktionsfähig machen könnte?)
Beachten Sie ähnliche Frage mit einem anderen Fokus (seltsame Dinge gehen dort mit Tabellen und wiederverwendet Ansichten und so ...): http://StackOverflow.com/Questions/8620619/uitabbarController-Storyboard-connecting-viewcontroller- thats-schon-connecte? rq = 1 –
Ich bin mir nicht sicher, was Sie erreichen möchten. Ihre Lösung, bei der Sie die zweite Registerkarte im Code hinzufügen, kann im Storyboard ausgeführt werden, indem Sie einfach den freigegebenen Controller kopieren und eine Instanz an jeden Tab-Controller anschließen. In beiden Szenarien erhalten Sie zwei verschiedene Instanzen des "freigegebenen" Controllers. – rdelmar
Was ich versuche zu erreichen, ist nicht das UI-Layout in mehreren Kopien der "one" Storyboard-Szene zu bearbeiten, wenn ich entscheide, dass es eine andere Hintergrundfarbe und ein anderes Tastenlayout haben muss. In diesem Beispiel gäbe es nur zwei Kopien. In meiner eigentlichen App wird es wahrscheinlich 10+ geben, daher der Wunsch zu teilen. Ich wollte vermeiden, dass die Benutzeroberfläche in .XIB-Dateien ausgelagert und von dort geladen wird, wofür Storyboards gedacht sind. –