2012-01-09 8 views
0

私は私のアプリケーションのメインビューに追加する必要があるボタンの数を動的に作成しているiPadプロジェクトを持っています。私は私のViewControllerから私のViewの中に住むメソッドを発射することを計画していました...それはadd_buttonsと呼ばれています。 MVCパターンでは、ビューはボタンと一般的な表示のレンダリングを処理する必要がありますが、コントローラはその操作を処理する必要があります。また、View Controllerについて「知っている」ビューのデザインが悪いという印象を受けています。MVCとUIButtons

私の質問には、私のボタンタップロジックがコントローラに含まれているはずですか?もしそうなら、私はどのように分離を扱うのですか?ビューでボタンを作成している場合は、イベントハンドラのデリゲートとして使用するビューコントローラへの参照が必要です。コントローラーでそれらを作成すると、コントローラにUI要素を設定する必要があるように感じられます。私は明らかな何かを見逃していることを知っているが、これまでの検索は無駄だった。

誰でも正しい方向に向けることができますか?

答えて

2

ボタンタップのロジックがコントローラーに最も確実に属しています。

ボタンを作成するコードはおそらくコントローラにも属しています。しかし、外観が設定されていても動作していないボタンを返すビューメソッドを含めることは意味があります。

いくつかの一般的なポイント:

  • ビューコントローラと彼らの見解は非常に緊密に結合されています。
  • 疑問がある場合は、コードをView Controllerに配置することをお勧めします。
  • ビューインターフェイスは、プリミティブデータ型(文字列、数字、画像など)を処理する必要があります。ビューは、モデルオブジェクトの詳細を知る必要はありません。

また、メソッドlowerCamelCaseの命名規則。例:add_buttonaddButtonである必要があります。

0

私は、UITextfieldsとUILabelsの両方を含むUIViewを動的に作成しなければならないプロジェクトを集中して終了しました。この問題に対する私のアプローチは、View Controller内から「addViews」関数を呼び出すことでした。私はこれを、UIView内部からのView Controllerを扱うよりも、より簡単でより簡単なアプローチと考えました。私は私のアプローチをテストし、完全にうまくいく(動的にUIViewのサイズを変更し、UITextfieldとUILabelで他のUIViewを追加する)。

1

し、表示するボタンを追加するときに、ビューコントローラで

[myButton addTarget:nil action:@selector(myButtonPressed) forControlEvents:UIControlEventTouchUpInside]; 

がターゲットと

-(void)myButtonPressed { 
} 

を追加:nilのイベントが面白いこのビュー

+0

を含む第一のコントローラによって処理されます。.. 。それを知らないと、それを言及してくれてありがとう。 – JamesB41

関連する問題