2013-09-25 4 views

Antwort

7

Es ist sehr einfach mit TyphoonStoryboard

von bootstrapping Typhoon in your plist, zusammen mit dem üblichen UILaunchStoryboardName und UIMainStoryboardFile wird Typhoon sicherstellen, dass alle Storyboards eine Instanz von TyphoonStoryboard sind. Verwenden Sie genau wie ein normales Storyboard, mit dem zusätzlichen Vorteil, dass Abhängigkeiten entsprechend den Definitionen in Ihrer/n TyphoonAssembly-Klasse (n) eingefügt werden.

Optional können Sie angeben, welche Definition für jeden viewController verwendet werden soll. Verwenden Sie dazu das Laufzeit-Attribut 'taphoonKey' im Storyboard. Andernfalls wird die Definition verwendet, die der Controller-Klasse entspricht. Beispiel:

example

Die Dokumentation für diese Funktion ist here.

8

Es gibt eine Komponente TyphoonStoryBoard im Backlog, , aber es wurde noch nicht implementiert (siehe Update unten).

Derzeit gibt es eine -injectProperties: -Methode für die Komponentenfactory, mit der Sie die Abhängigkeitsinjektion für eine Komponente anwenden können, nachdem sie instanziiert wurde, z. durch das Storyboard.

Vorerst könnten Sie UIStoryboard Unterklasse und die -injectProperties nennen: auf dem View-Controller durch zwingende:

– instantiateInitialViewController 
– instantiateViewControllerWithIdentifier: 

Beispiel:

- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier { 
    id instantiatedViewController = [super instantiateViewControllerWithIdentifier:identifier]; 
    [[TyphoonComponentFactory defaultFactory] injectProperties:instantiatedViewController]; 
    return instantiatedViewController; 
} 

Update:

Die Integration von TyphoonStoryBoard wurde jetzt abgeschlossen (ausstehende Dokumentation), a nd verpflichtet, zu meistern. Es wird in den kommenden Wochen als Teil von Typhoon 2.0 veröffentlicht.

+0

Sounds genial. Will Typhoon macht Storyboard-basierte View-Controller viel testbarer? Es war ein Schmerz, mit ihnen über TDD nachzudenken. – fatuhoku

+0

@fatuhoku Ja, alle regelmäßigen Vorteile von DI: Einfaches Testen, einfache Wartung, gute Kohäsion, etc. –

+1

Ahkay. Wenn ich einen Vorschlag machen kann, und das heißt, das Framework benötigt eine Menge mehr Beispiele im Benutzerhandbuch. Storyboards zum Beispiel sind verwirrend, da die Laufzeit im tatsächlichen Code entscheidet, welche VCs geladen werden sollen, und verwaltet View-Controller-Abhängigkeiten effektiv für Sie. Es ist nicht klar, wie Typhoon diesen Prozess, wenn überhaupt, abfängt. Ich habe gesehen, dass du eine TyphoonFactory oder ähnliches brauchst, aber ist dir bewusst, dass es Übergänge gibt? – fatuhoku