使用TyphoonAssemblyActivator后,从UIStoryBoard实例化视图控制器

时间:2015-02-16 14:28:16

标签: objective-c typhoon

将新API与TyphoonAssemblyActivator接口一起使用后,我希望实例化位于UIViewController内的UIStoryBoard,但它错过了factory实例。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

TyphoonAssemblyActivator对于在库中或遗留应用程序中的某个地方引导Typhoon非常有用。对于完全使用Typhoon的应用程序,最好使用plist integration

只需在应用的plist文件中添加TyphoonAssembly类的名称,并可选择注入AppDelegate类。做完这个:

  • Storyboard的实例将是TyphoonStoryboard,其行为与常规故事板一样,并且具有注入依赖关系的额外好处。您可以在装配中定义注射的定义,也可以使用auto-injection宏。
  • 以这种方式引导台风也意味着故事板中的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]];
        }];
    }];
}