将一个项目添加到另一个项目作为子模块

时间:2018-04-19 13:57:00

标签: ios swift git git-submodules

Project A UITabBarController。我有Project B个带有一个功能的视图控制器。 我想使用git将Project B添加到Project A作为子模块。然后,当我向Project B添加内容时,我可以从Project A获取内容。

但是有没有办法在Project B的故事板中使用Project A中的视图控制器?

我找到了关于git子模块的手册: https://git-scm.com/book/en/v2/Git-Tools-Submodules

已添加Project B作为子模块,然后在Project A创建新视图控制器的故事板中,将其类设置为Project B的类名并选择其模块。然后,当我运行应用程序时,我遇到了错误Unknown class _TtC9Submodule23SubModuleViewController in Interface Builder file.

有人可以解释一下它是否可以像这样工作,或者我该怎样做才能实现我的目标?

1 个答案:

答案 0 :(得分:0)

你有两件事正在进行 - 一个是使用带子模块的git存储库,另一个是将子模块代码拉入Xcode。

使用Finder检查以确保在运行后在相应的子模块文件夹中创建了文件:

git submodule init 

初始化本地配置文件,

git submodule update  

从该项目中获取所有数据(您应该检查列出的适当提交的消息)。如果没问题,那么从finder将文件拖放到xCode中的文件列表中,确保不检查“如果需要复制项目”并正确检查“添加到目标”。

enter image description here

您将能够使用您创建的UITabBarController类和代码但仍需要在Main.storyboard中创建它,并且您需要注意对项目A中的其他视图的任何引用(如果您这样做)复制和粘贴(这可能是您的错误来自的地方)。

你可以考虑通过xib或pod进行此操作。以下是您尝试使用框架的一个直接示例:

https://www.tapglue.com/blog/ios-frameworks-storyboards-swift/ https://github.com/tapglue/elements-ios

和xib的

https://medium.com/zenchef-tech-and-product/how-to-visualize-reusable-xibs-in-storyboards-using-ibdesignable-c0488c7f525d