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

Instantiate a view controller from UIStoryBoard after using TyphoonAssemblyActivator

在使用带有 TyphoonAssemblyActivator 接口的新 API 之后,我想实例化位于 UIStoryBoard 中的 UIViewController,但它错过了 [=13] =] 实例。

我应该怎么做?

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

只需在应用程序的 plist 文件中添加 TyphoonAssembly classes 的名称,并可选择注入您的 AppDelegate class。完成后:

  • Storyboard 的实例将是 TyphoonStoryboard,其行为与常规 Storyboard 一样,具有注入依赖项的额外好处。您可以在程序集中定义注入的定义或使用 auto-injection 宏。
  • 以这种方式引导 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]];
        }];
    }];
}