是否可以使用Storyboard开发iOS框架?

4

是否可以使用Storyboard和其中的视图控制器开发iOS框架?在我从任何iOS应用程序中初始化框架的入口方法时,需要使用我们捆绑到框架中的Storyboard。

3个回答

3

创建UI框架的一种方法是使用nib文件创建VC。如果在框架中定义了segues,则使用storyboard。

如果您正在使用storyboard,请暴露UI助手类,其中您可以从storyboard实例化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
    }

}

1

是的。

故事板只是用来容纳您的用户界面的。您可以使用它来实例化 ViewControllers

代码被分成代码文件。


在 NSBundle 中找不到名为 '--' 的故事板,一直出现这个错误。 - Abbut John
我将Storyboard放在公共部分,然后在Xcode模拟器中构建,我可以在框架中看到它们,但示例应用程序正在从框架中获取Storyboard。 - Abbut John
你的故事板可能没有被复制到NSBundle中。前往项目的“Build Phases”并检查是否将“Storyboard”添加到“Copy Bundle Resources”。 - TawaNicolas
1
是的,现在它可以工作了!!问题出在Bundle上。在通过代码创建storyboard实例时,我使用了 NSBundle* frameworkBundle = [NSBundle bundleForClass:[any_framework_class class]] 而不是 self 或 nil,然后它就正常工作了。 - Abbut John

0

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

当您使用.storyboard构建框架时,您会得到类似于以下内容:

在这里,您可以找到已经编译.storyboard文件所对应的.storyboardc文件。

[从框架中获取storyboard]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接