3 つのセクションに分割されたウィンドウで構成される Cocoa アプリを作成中です。各セクションは独自のビジネスを担当し、テーブル ビュー、ポップアップ ボタンなどの間に約 30 のコントロールがあります。
最初は 1 つのコントローラーで開始しましたが、簡単に面倒になるので、ロジックを 3 つのコントローラー オブジェクトに分割することにしました。 (ビューの各セクションに 1 つ)。次に、Interface Builder で NSObject 参照を作成し、すべてのアウトレット、アクション、データ ソース、およびデリゲートを接続しました。ここまでは順調ですね。
ここで、3 つのセクションがオブジェクトを相互に渡します。そのため、あるクラスから別のクラスにオブジェクトを設定する方法が必要です。問題のオブジェクトはクラス変数ですが、オブジェクトへの参照がないため、渡す方法がわかりません。
これを行う方法はありますか、それとも全体的に間違ったアプローチですか?
解決:
以下のコメントの 1 つで Sergio が述べたように、解決策は、各コントローラー内の他のコントローラーへの弱い参照を IBOutlet として作成し、Xcode Interface Builder でコントローラー オブジェクトをリンクすることのようです。その結果、各コントローラーは、参照されたコントローラーの公開されたメソッドと変数にアクセスできるようになりました。