我创建了一个包含 2 个项目的工作区,我们将它们称为 A 和 B,分别带有包标识符com.domain.a
和com.domain.b
。每个项目都有一个故事板Main.storyboard
。我在项目 A 的情节提要中有一个按钮,我想使用以下代码从项目 B 的情节提要中实例化一个视图控制器:
@IBAction func clicked(sender: AnyObject) {
let bundle = NSBundle(identifier: "com.domain.b")
let storyBoard = UIStoryboard(name: "Main", bundle: bundle)
let vc = storyBoard.instantiateViewControllerWithIdentifier("aVC")
self.presentViewController(vc, animated: true, completion: {})
}
我还为项目 B 中的视图控制器设置了故事板 ID:
但是当我构建并运行项目时,我得到了这个异常:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Storyboard (<UIStoryboard: 0x7f8578cd34d0>) doesn't contain a view controller with identifier 'aVC''
笔记:
我使用了断点,发现bundle
我的代码中的变量在nil
. 为什么?!