使用 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]];
}];
}];
}
在使用带有 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]];
}];
}];
}