使用故事板在iOS中开发静态库

时间:2015-10-14 09:05:30

标签: ios objective-c uiviewcontroller storyboard

我是一名新的iOS开发人员。我必须开发一个静态库。我有许多viewcontrollers,它们之间的流程是使用故事板定义的。我从我的项目中创建了两个目标。一个是静态库,另一个是捆绑包。我使用我的包来包含我的故事板。我已使用此代码从storybaord启动我的第一个viewcontroller。

-(void)showFromViewController:(UIViewController *)vc{
    NSBundle * bundle = [NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"storyBoards" withExtension:@"bundle"]];
    UIStoryboard * libStoryBoard = [UIStoryboard storyboardWithName:@"Main1" bundle:bundle];
    ViewController1 * viewController = [libStoryBoard instantiateViewControllerWithIdentifier:@"ViewController1"];
    [vc presentViewController:viewController animated:YES completion:NULL];
}

vc是一个调用此函数的ViewController。

是的,ViewController具有静态库的目标成员资格。

然而,在包括' .a'和' .bundle'在另一个项目中,并调用上述函数,它会在控制台日志中抛出一个错误。

Unknown class ViewController1 in Interface Builder file.

任何人都可以建议使用故事板和静态库。如果是,那么你可以指出从故事板中启动第一个视图控制器的正确方法,该类包含在静态库中。

2 个答案:

答案 0 :(得分:0)

只需你可以像这样导航

docker cp container_id:/path/to/file/that/is/annoyingly/long/poit.foo ~/local/

答案 1 :(得分:0)

我有类似的设置。我有我的主项目,我有一个ModelController子项目,它有一个静态库和一个在我的主项目中使用的资源包。

我创建了一个故事板和一个测试视图控制器,并使用上面的方法加载。

唯一可能会让您感到困惑的是静态库>目标>构建阶段>复制标题>确保将ViewController1.h文件添加到此列表中。

除此之外,一切都适合我。