1

ビューの1つとして、テーブルビューコントローラーを埋め込むコンテナービュー(IBストーリーボード内)であるビューコントローラーがあり、さらに別のビューコントローラーを埋め込むコンテナービューがあります。この最後のビュー コントローラーでは、弱い合成デリゲート プロパティを IBOutlet として持つデリゲート プロトコルを設定します。最初のView Controllerは、最後からデリゲートメソッドを受け取りたいもので、プロトコル <...> を追加しました。

問題は、ストーリーボード (またはそれ以外) で、最後のビュー コントローラーの IBOutlet デリゲートを、プロトコルに従う最初のビュー コントローラーにリンクして、最後のビュー コントローラーが最初のメッセージを送信できるようにする方法を見つけられなかったことです。(コントロールキーを使用して)ドラッグアンドドロップするだけだと思っていましたが、宛先のセグエオプションしか見つかりませんでした。アウトレット接続ウィンドウにデリゲートが表示されていても、プロジェクト内のどのビュー コントローラーにも接続されないようです。

ビューコントローラーを別のプロトコルのデリゲートにすることはできませんか? IBでリンクできますか?IB でできない場合、別の VC をデリゲート アップストリームにする方法がわかりません。

アドバイスをいただければ幸いです。ありがとう。

4

2 に答える 2

2

View Controller 間で IBOutlets を接続することはできません。コードで行う必要があります。最初のコントローラーから最後のコントローラーまで取得するには、childViewController のチェーンをたどる必要があります。最初のビュー コントローラーから構造を正しく理解していれば、次のようになります。

    LastController *last =  ((UIViewController *)self.childViewControllers[0]).childViewControllers[0];
    last.delegate = self;
于 2013-03-23T03:08:07.807 に答える
0

同様の質問をしましたInterface Builder will not allow connections to custom UIView class? 私は最終的に Apple にバグを報告しました。Apple からのいくつかのフォローアップの問い合わせの後、私は何の解決策も聞いていません。

于 2013-03-23T03:07:42.043 に答える