私はCocoaとiPhoneプログラミングには全く新しいものです。Cocoa Touch Appアーキテクチャ - MVCコントローラ?
私が持っているシンプルなアプリ実装するためのXcode ユーティリティアプリケーションテンプレート使用しています:
- 接続ボタンを持つユーザ名
- ビューを収集するテキストフィールドとの見解を ユーザー名を使用してリモートサイトへの接続を開始し、HTTP経由でデータを取得します。データは画面上にテキスト文字列として表示されます。
これは私のを表示すると思います。のMVCパターンです。
ユーザー名を格納するためのシンプルなクラスを作成し、MODELを表すすべての接続作業を行い、AppDelegate内でインスタンス化しました。ここで
本当に単純化スケッチ:
私が深いサブビュー(ユーザー名)にネストされたデータを取得することができますどのように私には本当に明確ではないか、どのように私は、ネストされた親ビュー内のアクションをトリガすることができます(接続ボタン)。
私の質問は:
このアーキテクチャを実装するための最良/クリーンな方法は何ですか?
にはどうすればCONTROLLERを実装していますか?コメントに基づいて私の答えを更新
任意の助けを事前に感謝し、
Paull
私はIBOutletsとIBActionsを使用して、UI要素を直接の親ビューコントローラにリンクすることができます。私は、モデルオブジェクトを含むApp Delegateまで上位のコンテナにデータを伝播する方法を理解していません... – Paull
アプリケーションデリゲートの状態やデータを保持することはできますが、常に利用できるので、良いアーキテクチャではありません([NSApplicationデリゲート])、これは非常に簡単にこのグローバルオブジェクト、すなわち、再使用不可能です。小規模なアプリケーションでは問題ありません。 – monowerker
答えをありがとう! 私の単純なアプリケーションでは、両方のサブビュー(テキストフィールドと接続ボタン+ラベル)に到達できるように、ルートコントローラ内にモデルインスタンスを置くことができます。私はあなたが提案したようにネットワークをきれいにするでしょう。 実際にネストされたビューを使用して、より複雑なアーキテクチャに対処する方法を知りました。 アプリ全体からアクセスできるようにシングルトンモデルが必要ですか? (私はこのアプローチが嫌いです) 親ビューメソッドを呼び出すか、何らかのイベント通知を送信して、データを一番下から上に伝播する必要がありますか? – Paull