2013-09-25 3 views

答えて

7

それはいつものUILaunchStoryboardNameとUIMainStoryboardFileとともに、bootstrapping Typhoon in your plistことでTyphoonStoryboard

と非常にシンプルで、台風はすべてのストーリーボードがTyphoonStoryboardのインスタンスであることを確認します。通常のストーリーボードとまったく同じように使用し、TyphoonAssemblyクラスの定義に従って依存関係が注入されるという追加の利点があります。

オプションで、各viewControllerにどの定義を使用するかを指定できます。そのためには、storyboardの '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の統合が完了しました(文書化が保留中)。マスターにコミット。これは、今後数週間で台風2.0の一部としてリリースされる予定です。

+0

素晴らしいです。 Typhoonはストーリーボードベースのビューコントローラーをはるかにテスト可能にしますか?それはTDDについて考えている痛みでした。 – fatuhoku

+0

@fatuhokuはい、DIのすべての定期的な利点:簡単なテスト、簡単なメンテナンス、良好な結束など –

+1

Ahkay。私が提案をすることができれば、それは、フレームワークはユーザガイドにもっと多くの例が必要です。実際のコードでは、ランタイムはどのVCをロードするかを決定し、ビューコントローラの依存関係を効果的に管理するため、ストーリーボードは混乱します。 Typhoonがどのようにこのプロセスを傍受しているかは明らかではありません。私はあなたがTyphoonFactoryやそのようなものが必要だと見てきましたが、それは起こっているセグの認識を持っていますか? – fatuhoku

関連する問題