我正在操场上创建一个应用程序,我在这个项目中添加了一个Main.storyboard文件。但是当它编译时,它会给我以下错误。
NSInvalidArgumentException', reason: 'Could not find a storyboard named 'Main' in bundle NSBundle
所以我开始认为这可能是一些错字,所以这就是为什么这个错误产生的原因。但这不是问题,所以我开始搜索谷歌和stackoverflow,但没有找到关于我的问题的解决方案。有关以下内容的stackoverflow有很多问题,但每个问题都有一个非常具体的场景。
然后我从github找到一个游乐场项目,其中开发人员添加了一个主要的故事板并且它的编译完美,但它的扩展名是Main.storyboardc。然后我搜索storyboardc扩展。所以我理解它的编译故事板。 然后只是检查我双击Main.storyboard并将其名称更改为Main.storyboadc。然后生成以下错误
'NSInvalidArgumentException', reason: 'There doesn't seem to be a valid compiled storyboard
现在,在这一点上,我确信我必须首先编译我的故事板然后它将添加到我的操场上,因为在.storyboardc扩展名下,它甚至没有找到主故事板。正如我上面所说。 所以我再次检查stackoverflow上的所有材料,每个都有一个非常具体的场景。所以指导我如何编译main.storyboard。
答案 0 :(得分:6)
命令ibtool
将为您完成此操作。
例如,您可以运行
终端内ibtool --compile Main.storyboardc Main.storyboard
。
之后,将在Main.storyboardc中创建所有相关文件(Info.plist和.nib文件)。
现在,您可以将该.storyboardc
文件放在项目中,并像往常一样引用故事板中的文件。
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let viewController = storyboard.instantiateViewController(withIdentifier: "MyViewController")
.storyboardc
文件只不过是一组nib文件。
有关详细信息,请参阅手册页man ibtool