1

我创建了一个包含 2 个项目的工作区,我们将它们称为 A 和 B,分别带有包标识符com.domain.acom.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:

故事板 ID

但是当我构建并运行项目时,我得到了这个异常:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Storyboard (<UIStoryboard: 0x7f8578cd34d0>) doesn't contain a view controller with identifier 'aVC''

笔记:

我使用了断点,发现bundle我的代码中的变量在nil. 为什么?!

4

0 回答 0