【问题标题】:Is it possible to develop an iOS framework with storyboard?是否可以使用故事板开发 iOS 框架?
【发布时间】:2017-11-06 10:59:03
【问题描述】:

是否可以开发带有 Storyboard 及其视图控制器的 iOS 框架?当我从任何 iOS 应用程序初始化框架中的入口方法时,它需要转到我们与框架捆绑的情节提要。

【问题讨论】:

    标签: ios frameworks storyboard


    【解决方案1】:

    创建 UI 框架的一种方法是使用 nib 文件创建 VC。如果您在框架中定义了转场,请使用故事板。

    如果您使用情节提要,请公开 UI 帮助程序类,您可以在其中从情节提要中实例化 VC。 例如:

    public class Utility {
    
        public static func getHomeVC() -> UIViewController {
    
                let storyboard = UIStoryboard.init(name: "HomeScreen", bundle: Bundle(for: self))
                let homeVC = storyboard.instantiateViewController(withIdentifier: "FrameworkHomeVC") 
                return homeVC
        }
    
    }
    

    【讨论】:

      【解决方案2】:

      是的。

      故事板只是用来保存您的 UI。你可以用它来实例化ViewControllers

      代码被分成代码文件。

      【讨论】:

      • 在捆绑包 NSBundle 中找不到名为“--”的故事板,总是出现此错误
      • 我将 Storyboard 放在 public 部分,然后在 xcode 模拟器中构建,我可以在框架中看到那些,但示例应用程序正在从框架中获取故事板
      • 您的故事板可能没有被复制到 NSBundle。转到您项目的Build Phases 并检查Storyboard 是否已添加到Copy Bundle Resources
      • 是的,它现在正在工作!问题出在 Bundle 上,在通过代码创建故事板实例时,我给了 NSBundle* frameworkBundle = [NSBundle bundleForClass:[any_framework_class class]] 而不是 self 或 nil ,然后它工作正常。
      【解决方案3】:

      [iOS Framework] 只是源和资源的容器(如.storyboard)。

      当你使用.storyboard 构建框架时,你会得到类似的东西

      在这里你可以找到.storyboardc 编译 .storyboard

      [Get storyboard from a framework]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-03
        • 1970-01-01
        • 1970-01-01
        • 2013-11-26
        • 2015-10-19
        • 1970-01-01
        • 2013-11-16
        相关资源
        最近更新 更多