1

使用带有接口的新 API 后TyphoonAssemblyActivator,我想实例化UIViewController位于 a 中的 a UIStoryBoard,但它错过了factory实例。

我该怎么做?

4

1 回答 1

1

TyphoonAssemblyActivator对于在库中或遗留应用程序中的某个位置引导 Typhoon 很有用。对于完全由 Typhoon 驱动的应用程序,最好使用plist 集成

只需TyphoonAssembly在应用的 plist 文件中添加类的名称,并可选择注入您的 AppDelegate 类。完成此操作后:

  • Storyboard 的实例将是 TyphoonStoryboard,其行为就像普通的故事板一样,具有注入依赖项的额外好处。您可以在程序集中定义注入定义或使用自动注入宏。
  • 以这种方式引导 Typhoon 也意味着 Storyboards 中的 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 回答