1

インターフェイスで新しい API を使用した後、内にあるTyphoonAssemblyActivatorをインスタンス化したいのですが、インスタンスがありません。UIViewControllerUIStoryBoardfactory

どうすればいいですか?

4

1 に答える 1

1

TyphoonAssemblyActivatorライブラリまたはレガシー アプリケーション内のどこかで Typhoon をブートストラップするのに役立ちます。Typhoon を完全に利用したアプリケーションの場合は、plist integrationを使用することをお勧めします。

アプリの plist ファイルにクラスの名前を追加し、TyphoonAssembly必要に応じて AppDelegate クラスを挿入します。これを行った後:

  • Storyboard のインスタンスは TyphoonStoryboard になり、通常のストーリーボードと同じように動作し、依存関係が挿入されるという利点が追加されます。アセンブリでインジェクションの定義を定義するか、自動インジェクションマクロを使用できます。
  • このように Typhoon をブートストラップすると、ストーリーボードの UIStateRestoration が期待どおりに機能することも意味します。

何らかの理由で TyphoonStoryboard を手動で作成したい場合は、次のようにアセンブリ内に定義を作成できます。

- (UIStoryboard*)storyboard
{
    return [TyphoonDefinition withClass:[TyphoonStoryboard class] 
    configuration:^(TyphoonDefinition *definition) {

        [definition useInitializer:@selector(storyboardWithName:factory:bundle:) 
            parameters:^(TyphoonMethod *initializer) {

            [initializer injectParameterWith:@"StoryboardName"];
            [initializer injectParameterWith:self];
            [initializer injectParameterWith:[NSBundle mainBundle]];
        }];
    }];
}
于 2015-02-16T20:44:53.813 に答える