2 つのプロジェクトを含むワークスペースを作成しました。それらを A と B と呼び、それぞれバンドル IDcom.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
. どうして?!