2016-04-22 8 views
7

壊れ表示されますimageは次のように、1コール「ProjectOne」であり、他は「ProjectTwo」である私は2つのプロジェクト内の持っているワークスペースを持って、今

彼らはそれぞれストーリーボードを持って、今、私は次のように「二を投影する」を押すことにより、2つのストーリーボードを接続したい:

image

が、私はボタンをクリックしたとき、それはよどのように

"キャッチされない例外により 'NSInvalidArgumentException' にアプリを終了>理由:2 'をバンドルNSBundle 8C6A5FDC9E06/ProjectOne.appに>(ロード) '' という名前のストーリーボードを見つけることができませんでした'"

できますか?
Target Membership

2.Changeソースファイルの名前をProject twoにする:私は数日のための方法も全く分からない...

+2

私の同僚は、今日同じ問題に遭遇しました。ストーリーボード内のバンドル識別子は無視されているようです。これは、_ProjectTwo_の 'NSBundle'インスタンスを作成し、その記述を記録することで確認できます。この記述は、明らかに_ProjectTwo_であり、_ProjectOne_ではないことを明示する。あなたは解決策を見つけることができましたか? –

答えて

2

1.Youはこのように、両方のストーリーボードのターゲットのメンバーシップを追加することができますを求めて ターゲットメンバーシップをProject oneにチェックし、これらの変更をストーリーボード2に設定します。

3. AppDelegateファイルProject twoは変更しないでください。

+1

あなたの助けてくれてありがとう、ターゲットメンバーシップを追加する方法はありますか?私はワークスペースに2つのプロジェクトを追加するが、どちらのストーリーボードにも1つのターゲットメンバシップしか表示しないからです。 –

+1

@ IvanNganの観察を確認できます。 –

+0

@IvanNgan http://stackoverflow.com/a/372​​76036/3975501 <---これは私の非常に似た問題を解決しました。ストーリーボード参照属性インスペクタで、バンドルIDが正しいことを確認し、確認して再確認してください!これもあなたの問題を解決することを願っています! – ErikBrandsma

6

ストーリーボードが別のプロジェクト/モジュールにある場合は、含まれるストーリーボードの完全な名前を使用する必要があります。これはバンドル名を含むことを意味します。ストーリーボードでこれを設定する方法は、下の画像を参照してください。 ProjectOneとProjectTwoをプロジェクト設定と同じようにセットアップ例を作成しました。

enter image description here

キーを使用すると、ストーリーボードの参照に入れた情報です。バンドル名も含める必要があります。これはあなたがが付いています様々なシーンであなたのストーリーボードを構築し始めとして、それが後で問題につながる動作しますが、単に参考のために私はAdding a Storyboard Reference

enter image description here

EDIT

へのリンクが含まれていますView Controllerを両方のプロジェクトターゲットにリンクする必要があります。さらに重要なことに、この関係はプロジェクトの構成の詳細に隠されています。これを有効にするには、ワークスペースを活用し、両方のプロジェクトで使用されるリソース用の共有フォルダを追加する方法が良いでしょう。

enter image description here

次にProjectOneとProjectTwo同じレベルでワークスペースに共有フォルダを追加します。共有フォルダへの参照をプロジェクトファイル(xcodeproj)にドラッグして、各プロジェクトに追加します。これにより、フォルダがプロジェクトのターゲットに追加されます。

enter image description here

今、各プロジェクトは、共有フォルダへの参照を含む、共有関係を明示的プロジェクトナビゲータ内に示されています。

enter image description here

+1

OPのスクリーンショットは、バンドル名が入力されていることをはっきりと示しています。 –

+0

私はセットアップを確認していました - 私はプロジェクトをコンパイルしました。 –

+0

を実行しました。私のサンプルプロジェクトの設定を確認し、必要に応じて回答を編集します。 –

1

これは私がプロジェクトからポッドを参照するために見つかったソリューションでした - あなたはポッド(またはあなたのケースでは、他のプロジェクト)からバンドルを露出させ、その後、あなたがする必要がある場合はそれにアクセスすることができます。また、アクセスしたいメソッドが公開されている必要があることに言及する価値があります。

static var bundle:NSBundle { 
    let podBundle = NSBundle(forClass: thisViewController.self) 

    let bundleURL = podBundle.URLForResource("myPod", withExtension: "bundle") 
    return NSBundle(URL: bundleURL!)! 
    } 
関連する問題