是否可以在iOS Playground中加载故事板?

时间:2016-08-22 11:24:55

标签: ios swift swift-playground

是否可以在iOS Playground中加载故事板? 请按照以下问题中的步骤操作:

How do you instantiate a Storyboard from a file within an iOS playground?

使用

编译Main.storyboard
ibtool --compile MainMenu.nib MainMenu.storyboard

将其添加到游乐场的Resources文件夹中。然后尝试加载它:

let storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())

这导致错误:

Playground execution aborted: Execution was interrupted, reason: signal SIGABRT.

XCode 7.3.1甚至XCode 8是否支持这种?

2 个答案:

答案 0 :(得分:4)

如果我将操场的资源部分设置为与应用程序相同的结构,那么您的故事板初始化代码适用于我。

资源 - > Base.lproj-> Main.storyboardc

答案 1 :(得分:2)

经过多次尝试,我终于有了这个工作。一些警告:

1 ..使用

编译故事板
/home/user/.gem/ruby/2.5.0/bin/ceedling

不使用

ibtool --compile MainMenu.storyboardc MainMenu.storyboard

2 ..将已编译的storyboardc文件放在playground的Resources文件夹中,而不是Sources文件夹

3 ..编译时使用--module标志指定模块名称。否则,您的插座可能会导致运行时错误。对于操场书,模块名称为Book_Sources。对于您自己的游乐场,模块名称为[Playground name] _Sources。请注意,我在Apple的文档中找不到任何此类内容,因此可能会有所更改。 最终命令如下所示:

ibtool --compile MainMenu.nib MainMenu.storyboard