2013-09-25 18 views

risposta

7

È molto semplice con TyphoonStoryboard

Per bootstrapping Typhoon in your plist, insieme alla solita UILaunchStoryboardName e UIMainStoryboardFile, Typhoon garantire che tutti Storyboards sono un'istanza di TyphoonStoryboard. Usa esattamente come faresti con uno Storyboard normale, con l'ulteriore vantaggio che le dipendenze verranno iniettate in base alle definizioni nelle tue classi di TyphoonAssembly.

Opzionalmente, è possibile specificare quale definizione deve essere utilizzata per ciascun viewController. Per questo, usa l'attributo di runtime "typhoonKey" nello storyboard. Altrimenti verrà utilizzata la definizione corrispondente alla classe controller. Esempio:

example

La documentazione per questa funzione è here.

8

C'è un componente TyphoonStoryBoard nel backlog, tuttavia non è stato ancora implementato (vedi aggiornamento di seguito).

Esiste attualmente un metodo -injectProperties: sulla produzione di componenti che è possibile utilizzare per applicare l'iniezione di dipendenza su un componente dopo l'istanza, ad es. dal tabellone.

Per il momento, si potrebbe creare una sottoclasse UIStoryboard e chiamare i -injectProperties: sul controller della vista sovrascrivendo:

– instantiateInitialViewController 
– instantiateViewControllerWithIdentifier: 

Esempio:

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

Aggiornamento:

L'integrazione di TyphoonStoryBoard è stata completata (documentazione in sospeso), a nd impegnato a padroneggiare. Sarà rilasciato come parte del Typhoon 2.0, nelle prossime settimane.

+0

Suoni fantastici. Typhoon renderà più controllabili i controller di visualizzazione basati su storyboard? È stato un dolore pensare a TDD con loro. – fatuhoku

+0

@fatuhoku Sì, tutti i vantaggi regolari di DI: test semplici, manutenzione facile, buona coesione, ecc. –

+1

Ahkay. Se posso dare un suggerimento, e cioè, il framework ha bisogno di molti altri esempi nella guida dell'utente. Gli storyboard, per esempio, sono confusi, perché nel codice reale, il runtime decide quale VC deve caricare e gestisce in modo efficace le dipendenze del controller di visualizzazione. Non è chiaro in che modo Typhoon intercetta questo processo, se non del tutto. Ho visto che hai bisogno di una TyphoonFactory o qualcosa del genere, ma ha una consapevolezza dei successi che stanno accadendo? – fatuhoku

Problemi correlati