2012-04-21 10 views
0

私は非常に新しいコーディングですが、私はMVCデザインパターンをどうにかして維持しようとしています!MVCの滞在方法:)

私は新しいテーブルビューにプッシュするテーブルビューが選択されるアプリケーションを持っています。 plistと辞書はモデルクラスで扱われ、テーブルビューを生成する配列を返します。 1つを選択すると、次の配列を取得するために何らかのクエリを実行するよりも、コントローラにその情報を送信しますか?ビューからモデルに移動することはできないと考えていますか?私はNSNotificationについて聞いたことがありますが、何が選択されているかをモデルが「知っている」ように設定する必要がありますか?

+2

この問題は、コーディングスタイルに関するものなので、話題にはならないようです。これは、プログラマースタックエクスチェンジではより良いかもしれません。 – user1118321

答えて

1

あなたのケースでは、モデルデータを次のテーブルビューに直接渡すことは間違いありません。この場合、最初のテーブルビューを管理するコントローラはモデルデータを次のコントローラに渡します(ナビゲーションコントローラを使用している場合は1つがプッシュされます)。これはMVCの観点からはまったく問題あり、この種のことを行うための本当に一般的な方法です。

+0

ありがとうございました!私がこれまで行ったことは、プロパティ(つまり、選択したセルのタイトルを持つ文字列)を持っていて、didSelectAtIndexPathメソッドでプロパティを設定することでした。まだそれを行うにはまだ有効な方法ですか?あるいは、少し違うことを意味していますか? –

+1

それはまさに正しいと思います。通常はdidSelectRowAtIndexPath:でビューコントローラを作成し、プロパティまたはメソッドを使用してビューコントローラを設定し、何らかの形で提示します。 – atticus

+0

優秀な、親切な親切なサー! –

1

MVCの観点からは、すべてのアプリケーションロジックがコントローラ内に存在する必要があります。今自分で決めてください。

あなたがしたいことは私にはあまり明確ではありません。

+0

明快さの欠如に対する謝罪。私はplistから人口が12のオブジェクトのテーブルを持っています。 1つが選択されると、それはplistの2番目の 'レベル'によって占められている別のテーブルにドリルダウンします。 didSelectRowAtIndexPathメソッドでは、「選択された」セルの情報をどこかに渡すことができます。それはコントローラーに送られ、コントローラーは次にモデルから次の配列を再度要求しますか?恐らく泥のようにはっきりしているようですが、今私は明確にしようとしました! –

+0

これは道のりです。 "子"コントローラとビューを設定するためのソースとして使用される、選択されたモデルオブジェクト(たとえばNSDictionary)を渡します。現在のセルデータから文字列を渡して実際のオブジェクトを取得することもできますが、それはおそらくより多くの作業と重複したコードでしょう。 – Tom

関連する問題