6

これは今の私にとって深刻な問題です。約 4 ~ 5 層の深さのマルチレイヤーの子ビュー コントローラーを使用したコード ベースでの作業 - これは、ビュー コントローラー間の分離度が非常に高いタブレット アプリです。第5層の子ViewControllerは、トップレベルのViewControllerにメッセージを送信してモーダルを表示したいと考えています。第 4 層と第 3 層にも異なるメッセージがあるため、基本的に今では 4 つのプロトコルがあり、深くネストされた子ビューコントローラーから祖先ビューコントローラーにメッセージを送信するのはかなり複雑になっています。これを行う簡単な方法はありますか?

私たちは NSNotification の使用を考えましたが、デバッグが難しく、サブスクリプションが私たちの管理下にある明確な依存関係ではないため、特に好きではありませんでした。また、シングルトンを使用することも考えましたが、静的とシングルトンは悪であり (そうですか?)、状態と同時実行性に関する問題を引き起こします。

どんな助けでも大歓迎です。また、これは設計ベースのややオープンエンドな質問ですが、非常に具体的な使用例 (上記のようなもの) があることも認識しています。

4

1 に答える 1

0

は興味深い質問ですが、スキームなどのヒントはほとんど必要ないと思います。
最初に考えたのは、ネストされた子を追加する必要がある理由です。単純なスタックと単一のコンテナー VC を使用して管理できませんでしたか? VC の管理方法が正しくないようです。モデルの変更について通知する必要がある場合は、それらをキャッチするために目に見えるものだけにする必要があります.viewWill/Did/appearでは、新しいデータをもう一度尋ねることができます。各 VC に状態を通知する必要がある場合は、階層を変更する必要があると思います。
スタックまたは一連の VC と可視の VC プロパティを備えたコンテナ VC を想像します。このコンテナは情報の交換を管理します。rdelmar が言ったように、結合度は非常に高いようです。コンテナと可視 VC の間の通信のみを表示する方法を再考する必要があります。他のものは表示中にデータを更新できます。

于 2013-07-31T05:42:59.583 に答える