Come utilizzerei Typhoon con gli storyboard iOS dove i controller di vista sono generati implicitamente dal sistema? Dovrei fare qualcosa di speciale nei metodi prepareForSegue?Typhoon: ViewControllers creato da Assembly e Storyboard
risposta
È 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:
La documentazione per questa funzione è here.
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.
- 1. Impossibile selezionare la classe personalizzata per ViewControllers in Xcode Storyboard
- 2. Maven Assembly Plugin - installa il gruppo creato
- 3. Storyboard e personalizzazione init
- 4. Segue tra ViewControllers senza controllo del trigger?
- 5. ScrollView creato nello storyboard inizializzato con il frame 0,0,0,0
- 6. Come connettere Azione pulsante a Tabbar Viewcontrollers
- 7. Come rimuovere la cella dallo statico UITableView creato nello Storyboard
- 8. Ripristino stato con più storyboard
- 9. Titoli non visualizzati nella barra di navigazione ViewControllers
- 10. Visualizza mobile sopra tutti ViewControllers
- 11. Come posso estrarre immagini dal file .resources creato da un decompilatore di un assembly .NET?
- 12. Modifica "Creato da" _username_
- 13. Estrazione di pennini/xib da storyboard (iOS)
- 14. Ada e assembly
- 15. Ottieni UINavigationController definito da storyboard da AppDelegate
- 16. Differenza tra uno storyboard e un pacchetto storyboard?
- 17. Caricamento assembly WinRT da .NET
- 18. L'iniezione di dipendenza come Typhoon sostituisce più singoli singleton?
- 19. Leggi cookie creato da NewCookie()
- 20. Modo alternativo per caricare ViewControllers su un UIPageControl
- 21. Maven Assembly Plugin e risorse
- 22. Monotouch Storyboard con controller vista xib-less
- 23. Decodifica e comprensione codice assembly
- 24. Verifica utente e password su un file creato da htpasswd
- 25. ios: Segmento personalizzato tra due viewcontrollers in modalità orizzontale
- 26. Xcode 7 storyboard delegate origini dati origine
- 27. Compatibilità di ARC e Storyboard
- 28. iOS 5 Storyboard e pennini
- 29. registerNib: forReuseidentifier con UTTableViewCell e Storyboard personalizzati
- 30. Maven assembly: assembly
Suoni fantastici. Typhoon renderà più controllabili i controller di visualizzazione basati su storyboard? È stato un dolore pensare a TDD con loro. – fatuhoku
@fatuhoku Sì, tutti i vantaggi regolari di DI: test semplici, manutenzione facile, buona coesione, ecc. –
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