台风故事板整合

Ste*_*eve 4 typhoon

我在我的应用程序中使用了StoryBoard.当我第一次开始整合Typhoon时,我在plist中列出了Assemblies,如下所示:

<key>TyphoonInitialAssemblies</key>
<array>
    <string>ApplicationAssembly</string>
    <string>CoreComponents</string>
</array>
Run Code Online (Sandbox Code Playgroud)

当我注入AppDelegate时,这很好用.

现在,如果我需要注入不同的视图控制器,看来我不得不删除UILaunchStoryboardName,并UIMainStoryboardFile从应用程序的plist文件,并使用TyphoonStoryboard像这样:

- (BOOL)application:(UIApplication *)application 
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    NSString *storyboardName = ...
    TyphoonComponentFactory *factory = ...

    TyphoonStoryboard *storyboard = [TyphoonStoryboard 
        storyboardWithName:storyboardName factory:factory bundle:nil];

    self.window = ...
    self.window.rootViewController = [storyboard instantiateInitialViewController];
    [self.window makeKeyAndVisible];

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

但是,我很困惑我获得的地方TyphoonComponentFactory.既然我已经在plist中列出了程序集,我可以以某种方式使用它吗?

Ale*_*sey 5

看来我必须从应用程序plist文件中删除UILaunchStoryboardName和UIMainStoryboardFile,并使用像这样的TyphoonStoryboard

不正确.您可以在info.plist文件中组合UIMainStoryboardFile(UILaunchStoryboardName)和TyphoonInitialAssemblies键.

在这种情况下,创建的故事板将是TyphoonStoryboard并且具有台风工厂(使用plist组件中指定创建).

您可以使用与您通常使用它们完全相同的故事板,还可以根据您的一个或多个TyphoonAssembly类中的定义注入依赖项.