2013-09-25 42 views

回答

7

這是非常簡單,TyphoonStoryboard

通過bootstrapping Typhoon in your plist,與通常的UILaunchStoryboardName和UIMainStoryboardFile以來,颱風將確保所有故事板TyphoonStoryboard的一個實例。使用和正常情節串聯板一樣的使用方式,並且依賴性將根據TyphoonAssembly類中的定義注入。

可選,您可以指定要用於每個的viewController哪一個定義。爲此,在故事板中使用'typhoonKey'運行時屬性。否則將使用與控制器類匹配的定義。例如:

​​

此功能的文檔是here

8

積壓中有一個TyphoonStoryBoard組件,但是它尚未實現(請參閱下面的更新)。

目前尚-injectProperties:在組件工廠,你可以使用一個組件上應用的依賴注入它已被實例化後,前法。由故事板。

現在,你可以繼承UIStoryboard並調用-injectProperties:通過重寫視圖控制器:

– instantiateInitialViewController 
– instantiateViewControllerWithIdentifier: 

例子:

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

更新:

TyphoonStoryBoard集成已經完成(待定文檔),a nd致力於掌握。它將在未來幾周內作爲颱風2.0的一部分發布。

+0

聽起來很棒。颱風會使基於故事板的視圖控制器更加可測試嗎?與他們一起思考TDD是一件痛苦的事情。 – fatuhoku

+0

@fatuhoku是,DI的所有常規優點:易於測試,易於維護,良好的凝聚力等 –

+1

Ahkay。如果我可以提出一個建議,也就是說,框架在用戶指南中需要更多的例子。例如,故事板令人困惑,因爲在實際代碼中,運行時決定了要加載的VC,並有效地管理視圖控制器的依賴關係。目前還不清楚颱風如何截取這一過程,如果有的話。我看到你需要一個TyphoonFactory或者類似的東西,但它是否意識到正在發生的賽段? – fatuhoku