我在我的应用程序中使用了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中列出了程序集,我可以以某种方式使用它吗?
看来我必须从应用程序plist文件中删除UILaunchStoryboardName和UIMainStoryboardFile,并使用像这样的TyphoonStoryboard
不正确.您可以在info.plist文件中组合UIMainStoryboardFile(UILaunchStoryboardName)和TyphoonInitialAssemblies键.
在这种情况下,创建的故事板将是TyphoonStoryboard并且具有台风工厂(使用plist组件中指定创建).
您可以使用与您通常使用它们完全相同的故事板,还可以根据您的一个或多个TyphoonAssembly
类中的定义注入依赖项.
归档时间: |
|
查看次数: |
789 次 |
最近记录: |